【发布时间】:2017-06-24 01:29:32
【问题描述】:
最近,在使用“-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)
有什么提示吗?
【问题讨论】:
-
它可以与
LD_PRELOAD=libasan.so一起使用吗? -
不,我收到“错误:ld.so:无法预加载来自 LD_PRELOAD 的对象 'libasan.so'(无法打开共享对象文件):忽略。”
-
LD_PRELOAD=libasan.so.3怎么样(如果失败,LD_PRELOAD=/usr/lib/i386-linux-gnu/libasan.so.3)?
标签: gcc valgrind address-sanitizer