...
Each bullet point links to an example (in C++) of what it looks like when ASan detects an error. They all start similar (ERROR: AddressSanitizer
...) except for Memory leaks (ERROR: LeakSanitizer...). Two examples are provided below.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
==162==ERROR: AddressSanitizer: heap-use-after-free on address 0x607000000025 at pc 0x0000004c317b bp 0x7ffccaf1d220 sp 0x7ffccaf1d218 READ of size 1 at 0x607000000025 thread T0 #0 0x4c317a in main (/mnt/c/Users/Pascal/netdef/a.out+0x4c317a) #1 0x7f60f59e00b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2) #2 0x41b2dd in _start (/mnt/c/Users/Pascal/netdef/a.out+0x41b2dd) 0x607000000025 is located 5 bytes inside of 80-byte region [0x607000000020,0x607000000070) freed by thread T0 here: #0 0x49379d in free (/mnt/c/Users/Pascal/netdef/a.out+0x49379d) #1 0x4c3135 in main (/mnt/c/Users/Pascal/netdef/a.out+0x4c3135) #2 0x7f60f59e00b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2) previously allocated by thread T0 here: #0 0x493a1d in malloc (/mnt/c/Users/Pascal/netdef/a.out+0x493a1d) #1 0x4c3128 in main (/mnt/c/Users/Pascal/netdef/a.out+0x4c3128) #2 0x7f60f59e00b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2) SUMMARY: AddressSanitizer: heap-use-after-free (/mnt/c/Users/Pascal/netdef/a.out+0x4c317a) in main |
...