2
我編譯這樣我的代碼,以使阿三:如何生成核心轉儲上AddressSanitizer錯誤
g++ -O0 -g -fsanitize=address -fno-omit-frame-pointer
但它從來沒有產生一個核心轉儲,這樣我可以在以後檢查錯誤的詳細信息。我怎樣才能生成它?
我編譯這樣我的代碼,以使阿三:如何生成核心轉儲上AddressSanitizer錯誤
g++ -O0 -g -fsanitize=address -fno-omit-frame-pointer
但它從來沒有產生一個核心轉儲,這樣我可以在以後檢查錯誤的詳細信息。我怎樣才能生成它?
需要設置環境變量,要求核心轉儲
export ASAN_OPTIONS=abort_on_error=1
這確實應該默認值,但由於歷史原因阿三隻是非零錯誤代碼退出來代替。
在64位系統中,你可能需要添加
export ASAN_OPTIONS=...:disable_coredump=0::unmap_shadow_on_exit=1
(核心轉儲默認情況下禁用那裏,怕會過大)。