-
Notifications
You must be signed in to change notification settings - Fork 1k
AddressSanitizerAndDebugger
Evgeniy Stepanov edited this page Aug 26, 2016
·
7 revisions
You can use gdb with
binaries built by AddressSanitizer in a usual way.
When AddressSanitizer finds a bug it calls one of the functions __asan_report_{load,store}{1,2,4,8,16}
which in turn calls __asan::ReportGenericError
.
If you want gdb to stop before asan reports an error, set a breakpoint on __asan::ReportGenericError
.
If you want gdb to stop after asan has reported an error, set a breakpoint on __sanitizer::Die
or use ASAN_OPTIONS=abort_on_error=1
.
Inside gdb you can ask asan to describe a memory location:
(gdb) set overload-resolution off
(gdb) p __asan_describe_address(0x7ffff73c3f80)
0x7ffff73c3f80 is located 0 bytes inside of 10-byte region [0x7ffff73c3f80,0x7ffff73c3f8a)
freed by thread T0 here:
...