testAddressSanitizer.cmake 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. # this file simulates a program that has been built with address sanitizer
  2. # options
  3. message("ASAN_OPTIONS = [$ENV{ASAN_OPTIONS}]")
  4. string(REGEX REPLACE ".*log_path=\'([^\']*)\'.*" "\\1" LOG_FILE "$ENV{ASAN_OPTIONS}")
  5. message("LOG_FILE=[${LOG_FILE}]")
  6. # if we are not asked to simulate address sanitizer don't do it
  7. if(NOT "$ENV{ASAN_OPTIONS}]" MATCHES "simulate_sanitizer.1")
  8. return()
  9. endif()
  10. # clear the log file
  11. file(REMOVE "${LOG_FILE}.2343")
  12. # create an example error from address santizer
  13. file(APPEND "${LOG_FILE}.2343"
  14. "=================================================================
  15. ==19278== ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60080000bffc at pc 0x4009f1 bp 0x7fff82de6520 sp 0x7fff82de6518
  16. WRITE of size 4 at 0x60080000bffc thread T0
  17. #0 0x4009f0 (/home/kitware/msan/a.out+0x4009f0)
  18. #1 0x7f18b02c876c (/lib/x86_64-linux-gnu/libc-2.15.so+0x2176c)
  19. #2 0x400858 (/home/kitware/msan/a.out+0x400858)
  20. 0x60080000bffc is located 4 bytes to the right of 40-byte region [0x60080000bfd0,0x60080000bff8)
  21. allocated by thread T0 here:
  22. #0 0x7f18b088f9ca (/usr/lib/x86_64-linux-gnu/libasan.so.0.0.0+0x119ca)
  23. #1 0x4009a2 (/home/kitware/msan/a.out+0x4009a2)
  24. #2 0x7f18b02c876c (/lib/x86_64-linux-gnu/libc-2.15.so+0x2176c)
  25. Shadow bytes around the buggy address:
  26. 0x0c017fff97a0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  27. 0x0c017fff97b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  28. 0x0c017fff97c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  29. 0x0c017fff97d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  30. 0x0c017fff97e0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  31. =>0x0c017fff97f0: fa fa fa fa fa fa fa fa fa fa 00 00 00 00 00[fa]
  32. 0x0c017fff9800:fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  33. 0x0c017fff9810: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  34. 0x0c017fff9820: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  35. 0x0c017fff9830: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  36. 0x0c017fff9840: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  37. Shadow byte legend (one shadow byte represents 8 application bytes):
  38. Addressable: 00
  39. Partially addressable: 01 02 03 04 05 06 07
  40. Heap left redzone: fa
  41. Heap righ redzone: fb
  42. Freed Heap region: fd
  43. Stack left redzone: f1
  44. Stack mid redzone: f2
  45. Stack right redzone: f3
  46. Stack partial redzone: f4
  47. Stack after return: f5
  48. Stack use after scope: f8
  49. Global redzone: f9
  50. Global init order: f6
  51. Poisoned by user: f7
  52. ASan internal: fe
  53. ==19278== ABORTING
  54. ")