【解决】asan runtime does not come first in initial library list

清泛原创
报错信息:
ASan runtime does not come first in initial library list; you should either link runtime to your application or manually preload it with LD_PRELOAD" runtime error.

可能有多种方式解决(请逐一尝试):
1、依赖的库列表中,将asan放到第一个
2、程序运行依赖中,入口程序必须添加asan支持,之后的程序都可以不加,否则报此错误。如A运行需要依赖B程序,则B作为入口程序添加asan即可,A不添加也能生效(推荐
3、export LD_PRELOAD=/usr/lib64/libasan.so.4    (Linux asan的库位置)
4、添加编译选项:-fsanitize=address
5、动态链接 -lasan  -->   静态链接 -static-libasan
6、export ASAN_OPTIONS=verify_asan_link_order=0禁用检查(仅高版本gcc支持)。

注:-fsanitize=address编译选项可以检查出更详细的内存问题,不加也能编译通过也能执行检查。

参考:https://stackoverflow.com/questions/59853730/asan-issue-with-asan-library-loading
2021/8/5 添加2、3节。

asan 内存跟踪

分享到:
评论加载中,请稍后...
创APP如搭积木 - 创意无限,梦想即时!
回到顶部