2017-09-01 188 views
0

我在centOS7.2.1511上用-fsanitize = address编译了我的代码,当我将gcc更新到7.1.0时,它不能再生成核心转储文件。可以有人帮助我?谢谢。如何使用Address Sanitizer和gcc7.1.0生成核心转储

GCC complie选项: -lm -g3 -Wall -Wno未知的编译指示--std = C++ 11 -Werror -ggdb -fsanitize =地址-fno-省略帧指针-D_GLIBCXX_USE_CXX11_ABI = 0

链接选项: -lxml2 -lpthread -lmysqlclient -L的/ usr/lib64下/ MySQL的/ -llog4cxx -lprotobuf -llua -lluabind -lhiredis -lcrypto -lcurl -ljsoncpp -Wl,-E -fsanitize =地址-ldl

首先,我使用gcc4.8.5,通常与这样设置的选项ASAN_OPTIONS生成核心转储: 出口ASAN_OPTIONS = “disable_core = 0:unmap_shadow_on_exit = 1:abort_on_error = 1”

然后我更新gcc到7.1.0,然后核心转储不能再生成,即使ASAN_OPTIONS设置如上。

回答

0

问题是solved.The新消毒剂选项ASAN_OPTIONS应设置为 “disable_coredump”,我将其设置是这样的: ASAN_OPTIONS = “disable_coredump = 0:unmap_shadow_on_exit = 1:abort_on_error = 1”