我编译了这样的代码以启用Asan:
g++ -O0 -g -fsanitize=address -fno-omit-frame-pointer
但它永远不会生成核心转储,以便我以后可以检查错误的详细信息。我该如何生成它?
答案 0 :(得分:5)
您需要设置环境变量以请求coredumps
export ASAN_OPTIONS=abort_on_error=1
这应该是默认的,但由于历史原因,ASan只是以非零错误代码退出。
在64位系统上,您可能需要添加
export ASAN_OPTIONS=...:disable_coredump=0::unmap_shadow_on_exit=1
(coredumps默认禁用,担心它们会太大)。