gpt4 book ai didi

c - ltrace 的替代方案,它适用于与 `-z now` 链接的二进制文件?

转载 作者:行者123 更新时间:2023-12-02 09:37:30 25 4
gpt4 key购买 nike

ltrace doesn't work on binaries linked with the -z now option ,这是我的 Ubuntu 19.10 系统上的默认设置。它仅适用于与 -z lazy 链接的二进制文件.
ltrace有什么替代品吗?做同样的工作,但适用于 now二进制也是?

最佳答案

您可以使用 uftrace utility written by NamhyungKim .它可以作为 packagein Ubuntu 使用虽然我建
手动来自 master 分支的代码以确保我使用最新的
Vanilla 版。示例 main.c :

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
puts("Hello World");

return EXIT_SUCCESS;
}

使用 -z now 构建:
gcc -O2 main.c -z now -o main
ltrace不起作用:
$ ltrace ./main
Hello World
+++ exited (status 0) +++

但是 uftrace做:
$ LD_LIBRARY_PATH=~/uftrace/libmcount ~/uftrace/uftrace -a --force ./main
Hello World
# DURATION TID FUNCTION
58.231 us [ 16283] | puts("Hello World") = 12;

在 Github 上的项目站点上查看此主题: tracing library callseven if it has no PLT #592 .

关于c - ltrace 的替代方案,它适用于与 `-z now` 链接的二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61394462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com