How to generate core dump on AddressSanitizer erro

2019-04-11 22:34发布

问题:

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?

回答1:

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).