ltrace命令是用来跟踪进程调用库函数的情况,ltrace其实也是基于ptrace。我们知道,ptrace能够主要是用来跟踪系统调用,那么它是如何跟踪库函数呢?首先ltrace打开elf文件,对其进行分析。在elf文件中,出于动态连接的需要,需要在elf文件中保存函数的符号,供连接器使用。
语法格式:ltrace [参数]
常用参数:
-a | 对齐具体某个列的返回值 |
-c | 计算时间和调用,并在程序退出时打印摘要 |
-d | 打印调试信息 |
-f | 跟踪子进程 |
-l | 只打印某个库中的调用 |
参考实例
最基本应用,不带任何参数:
[root@linuxcool ~]# ltrace ./a.out
输出调用时间开销:
[root@linuxcool ~]# ltrace -T ./a.out
显示系统调用:
[root@linuxcool ~]# ltrace -S ./a.out
计算时间和调用,并在程序退出时打印摘要:
[root@linuxcool ~]# ltrace -c ./a.out
打印调试信息:
[root@linuxcool ~]# ltrace -d ./a.out