如何在AddressSanitizer错误上生成核心转储

问题描述 投票:3回答:1

我编译了这样的代码来启用Asan:

g++ -O0 -g -fsanitize=address -fno-omit-frame-pointer

但它永远不会生成核心转储,以便我以后可以检查错误的详细信息。我该如何生成它?

gcc address-sanitizer sanitizer
1个回答
5
投票

您需要设置环境变量以请求coredump

export ASAN_OPTIONS=abort_on_error=1

这应该是默认的,但由于历史原因,ASan只是以非零错误代码退出。

在64位系统上,您可能需要添加

export ASAN_OPTIONS=...:disable_coredump=0::unmap_shadow_on_exit=1

(coredumps默认禁用,担心它们会太大)。

© www.soinside.com 2019 - 2024. All rights reserved.