gpt4 book ai didi

gcc - valgrind、gcc 6.2.0 和 "-fsanitize=address"

转载 作者:行者123 更新时间:2023-12-01 12:23:15 25 4
gpt4 key购买 nike

最近,在使用 '-fsanitize=address' 编译时,我得到了
使用 valgrind 运行应用程序时的执行异常


“ASan 运行时不会出现在初始库列表中”

我有点不知道 valgrind 实际上做了什么。命令
'ldd file.exe' 提供

    linux-gate.so.1 =>  (0xb7755000)
libasan.so.3 => /usr/lib/i386-linux-gnu/libasan.so.3 (0xb7199000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb6fdf000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb6fd8000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb6fcf000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb6fb2000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb6f5c000)
/lib/ld-linux.so.2 (0x80092000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb6f3e000)

任何提示?

最佳答案

您将无法在 Valgrind 下运行经过清理的代码。即使您解决了预加载 libasan 的问题,您也会遇到冲突的地址空间要求(即,在启动时 Valgrind 保留了 Asan 影子内存也需要的内存区域)并且这无法解决,因为这两个地址都是在 Valgrind 和 libasan 中硬编码。 Asan 和 Tsan 或 Asan 和 Msan 存在类似问题(即它们不能同时启用)。它不太可能被修复,因为 sanitizer 高度特化以实现其令人印象深刻的性能数字。

关于gcc - valgrind、gcc 6.2.0 和 "-fsanitize=address",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42079091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com