C++ 程序 AddressSanitizer:DEADLYSIGNAL
GCC && G++
操作系统:Ubuntu 22.04
现象:C++程序编译时开启ASAN,运行时有几率会出现大量AddressSanitizer:DEADLYSIGNAL
参考文章:
https://stackoverflow.com/questions/77894856/possible-bug-in-gcc-sanitizers
https://stackoverflow.com/questions/78136716/addresssanitizerdeadlysignal-from-fsanitize-address-flag
https://zhuanlan.zhihu.com/p/706274443
1.临时解决方法
关闭随机分配地址
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
2. 长期解决方法,更新gcc g++ 到13
add-apt-repository ppa:ubuntu-toolchain-r/test
apt update
apt install gcc-13 g++-13#如果你安装了多个版本的 gcc,需要更新系统默认 gcc 链接:
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 11
#update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 12
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 13
update-alternatives --config gccupdate-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 11
#update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 12
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 13
update-alternatives --config g++