ani*_*iki 5 memory debugging compilation
当您加载 lib asan 时,它会失败并显示以下错误:影子内存范围与现有内存映射交错。ASan 无法正确进行。中止。
我使用 LD_PRELOAD 加载了库,然后启动过程失败,因为上面提到的错误。
提前致谢。
我发现了 32 位目标出现此问题的原因,但在AddressSanitizer FAQ中未提及。如果您的堆栈大小是无限的(即您运行了ulimit -s unlimited),则在进程映射的顶部保留大量地址空间以供堆栈增长。这意味着动态链接器、vdso、libasan.so 和其他共享库加载在 0x2aaab000 及以下(对于我来说在 x86 上),这与 ASAN 希望使用的地址范围发生冲突。
这种情况并不常见,因为 Linux 上的默认软堆栈限制是 8192,这在 ASAN 的共享库下方留下了大量的地址空间。修复方法是设置更合适的堆栈大小限制。
| 归档时间: |
|
| 查看次数: |
3346 次 |
| 最近记录: |