目前我遇到了asan(See report)
的已知问题==5097==Shadow memory range interleaves with an existing memory mapping. ASan cannot proceed correctly. ABORTING.
==5097==ASan shadow was supposed to be located in the [0x00007fff7000-0x10007fff7fff] range.
是否可以使用环境变量来阻止asan用于防止此错误?
或至少阻止此错误致命。
我想这样做的原因是生成代码时发生了失败的命令,但是我想使用asan来生成二进制文件。为生成的二进制文件和最终的二进制文件使用不同的CFLAGS是可能的,但如果没有为其他人进行硬编码就很难做到。所以我想在构建步骤中禁用asan,但之后再使用。
答案 0 :(得分:1)
不,这是一个基本错误,会阻止Asan以后的所有仪器正常工作。例如。函数序言中的堆栈中毒最终会导致段错误或破坏随机内存。
答案 1 :(得分:0)
您报告的错误不是地址清理程序发现的地址错误,而是地址清理程序本身的问题。阅读常见问题解答here。在此报告与您的案例相关的部分:
问:我使用动态ASan运行时,我的程序在开始时崩溃了 "影子存储器范围与现有存储器映射交错。 ASAN 无法正确进行。"。
A1:如果您使用的是共享的ASan DSO,请尝试使用LD_PRELOAD&#asan运行时 进入你的计划。