I compiled my code like this to enable Asan:
g++ -O0 -g -fsanitize=address -fno-omit-frame-pointer
but it never generates a core dump so that I can later examine the details of the error. How can I generate it?
You need to set environment variable to request coredumps
export ASAN_OPTIONS=abort_on_error=1
This should really be default but due to historic reasons ASan just exits with non-zero error code instead.
On 64-bit systems you might need to add
export ASAN_OPTIONS=...:disable_coredump=0::unmap_shadow_on_exit=1
(coredumps are disabled by default there, in fear that they will be too large).
来源:https://stackoverflow.com/questions/42851670/how-to-generate-core-dump-on-addresssanitizer-error