-fsanitize=address
我在 centOS 7.2.1511 上编译了我的代码。当我将 gcc 更新到 7.1.0 时,它不能再生成核心转储文件了。有谁能够帮我?
gcc 编译选项:
-lm -g3 -Wall -Wno-unknown-pragmas --std=c++11 -Werror -ggdb -fsanitize=address -fno-omit-frame-pointer -D_GLIBCXX_USE_CXX11_ABI=0
链接选项:
-lxml2 -lpthread -lmysqlclient -L/usr/lib64/mysql/ -llog4cxx -lprotobuf -llua -lluabind -lhiredis -lcrypto -lcurl -ljsoncpp -Wl,-E -fsanitize=address -ldl
当我使用 gcc 4.8.5 时,通常使用选项 ASAN_OPTIONS 生成核心转储,如下所示:
export ASAN_OPTIONS="disable_core=0:unmap_shadow_on_exit=1:abort_on_error=1"
当我将 gcc 更新到 7.1.0 时,即使 ASAN_OPTIONS 像上面那样设置,也无法再生成核心转储。