小编san*_*osh的帖子

Asan:asan 库加载问题

在我们的构建系统中,我们最近将 ASAN 工具(添加 -fsanitize=address)集成到 CFLAGS 中,同时也在链接、创建库 .so 文件的同时。注意:- 我们使用 GCC 6.3 编译器。

我们能够成功构建我们的代码。但是在运行时失败并出现以下问题:

==52215==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.
Run Code Online (Sandbox Code Playgroud)

这是我的 gcc 命令:-

/local/common/pkgs/gcc/v6.3.0/bin/gcc -m32 -shared -o /local/testing/build/new_tool/asan_build/syn/verilog/libspd.so  -Wl,-rpath=\$ORIGIN/lib -Wl,-rpath=\$ORIGIN/../lib -W1,-rpath=/local/common/gcc/v6.3.0/lib  -fsanitize=address -L/local/testing/build/new_tool/asan_build/modules /local/testing/build/new_tool/asan_build/modules/silvpi.o /local/testing/build/new_tool/asan_build/modules/sypsv.o /local/testing/build/new_tool/asan_build/modules/cdnsv_tfs.o /local/testing/build/new_tool/asan_build/modules/libcore.o /local/testing/build/new_tool/asan_build/modules/vpi_user.o /local/testing/build/new_tool/asan_build/modules/libdenbase.a /local/testing/build/new_tool/asan_build/modules/libbdd.a  -L/local/testing/build/new_tool/asan_build/syn/lib -L/local/testing/build/new_tool/asan_build/modules -L/home/local/outer/Linux/lib /local/testing/build/new_tool/asan_build/modules/vhpimodelfunc.o /local/testing/build/new_tool/asan_build/modules/vipcommonlib.a  -lm -lc -ldenbase -lbdd -ldenbase -lviputil -llocalCommonMT_sh
Run Code Online (Sandbox Code Playgroud)

我能够libspd.so成功构建库。但是当我们尝试运行它时,它会因我提到的上述错误而失败。

我可以看到依赖库列表 libspd.so

ldd /local/testing/build/new_tool/asan_build/syn/verilog/libspd.so
    linux-gate.so.1 =>  (0x00279000)
    libasan.so.3 …
Run Code Online (Sandbox Code Playgroud)

gcc gnu-make address-sanitizer

0
推荐指数
1
解决办法
6624
查看次数

标签 统计

address-sanitizer ×1

gcc ×1

gnu-make ×1