ltrace
不适用于与链接的二进制文件-z now
选项链接的二进制文件 - 检查这问题——这是我的 Ubuntu 19.10 系统上的默认设置。它仅适用于与-z lazy
.
有没有什么替代方案ltrace
可以完成相同的工作,但可以工作惰性链接二进制也?
答案1
这个问题得到了解答这里。我会发布一个总结。
这uftrace实用程序是 ltrace 的有效替代品,适用于与-z now
.下面是一个演示。
#include <stdio.h>
int main(int argc, char const *argv[])
{
printf("Hello world!\n");
return 0;
}
我们将使用上面的 hello world 程序进行演示。
sumit@HAL9000:~$ gcc hello.c -o hello -Wl,-z,now
sumit@HAL9000:~$ ltrace ./hello
Hello world!
+++ exited (status 0) +++
sumit@HAL9000:~$ uftrace --force -a ./hello
Hello world!
# DURATION TID FUNCTION
187.291 us [ 40352] | puts("Hello world!") = 13;
正如我们在上面所看到的,ltrace
当使用 编译该程序时,该程序没有运行-z now
,但uftrace
可以运行。