ltrace命令是用来跟踪进程调用库函数的情况,ltrace其实也是基于ptrace。我们知道,ptrace能够主要是用来跟踪系统调用,那么它是如何跟踪库函数呢?首先ltrace打开elf文件,对其进行分析。在elf文件中,出于动态连接的需要,需要在elf文件中保存函数的符号,供连接器使用。

语法格式:ltrace [参数]

常用参数:

-a对齐具体某个列的返回值
-c计算时间和调用,并在程序退出时打印摘要
-d打印调试信息
-f跟踪子进程
-l只打印某个库中的调用

参考实例

最基本应用,不带任何参数:

[root@linux-arae-cc ~]# ltrace ./a.out 

输出调用时间开销:

[root@linux-arae-cc ~]# ltrace -T ./a.out 

显示系统调用:

[root@linux-arae-cc ~]# ltrace -S ./a.out 

计算时间和调用,并在程序退出时打印摘要:

[root@linux-arae-cc ~]# ltrace -c ./a.out 

打印调试信息:

[root@linux-arae-cc ~]# ltrace -d ./a.out