温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux中ltrace命令有什么用

发布时间:2022-02-09 14:54:32 阅读:156 作者:小新 栏目:开发技术
Linux服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

小编给大家分享一下Linux中ltrace命令有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

Linux常用命令ltrace命令 是用来跟踪进程调用库函数的情况。

Linux中ltrace命令有什么用

ltrace

用来跟踪进程调用库函数的情况

语法

 ltrace [option ...] [command [arg ...]]

选项

 -a 对齐具体某个列的返回值。
 -c 计算时间和调用,并在程序退出时打印摘要。
 -C 解码低级别名称(内核级)为用户级名称。
 -d 打印调试信息。
 -e 改变跟踪的事件。
 -f 跟踪子进程。
 -h 打印帮助信息。
 -i 打印指令指针,当库调用时。
 -l 只打印某个库中的调用。
 -L 不打印库调用。
 -n, --indent=NR 对每个调用级别嵌套以NR个空格进行缩进输出。
 -o, --output=file 把输出定向到文件。
 -p PID 附着在值为PID的进程号上进行ltrace。
 -r 打印相对时间戳。
 -s STRLEN 设置打印的字符串最大长度。
 -S 显示系统调用。
 -t, -tt, -ttt 打印绝对时间戳。
 -T 输出每个调用过程的时间开销。
 -u USERNAME 使用某个用户id或组ID来运行命令。
 -V, --version 打印版本信息,然后退出。
 -x NAME treat the global NAME like a library subroutine.(求翻译)

实例

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

 [guest@localhost tmp]$ ltrace ./a.out
 __libc_start_main(0x80484aa10xbfc077440x80485500x8048540 printf("no1:%d \t no2:%d \t diff:%d\n"1064no1:10 no2:6 diff:4 ) = 24
 printf("no1:%d \t no2:%d \t diff:%d\n"972no1:9 no2:7 diff:2 ) = 23
 printf("no1:%d \t no2:%d \t diff:%d\n"88, 0no1:8 no2:8 diff:0 ) = 23
 --- SIGFPE (Floating point exception) ---
 +++ killed by SIGFPE +++

输出调用时间开销:

 [guest@localhost tmp]$ ltrace -T ./a.out
 __libc_start_main(0x80484aa10xbf81d3940x80485500x8048540 printf("no1:%d \t no2:%d \t diff:%d\n"1064no1:10 no2:6 diff:4 ) = 24 
 printf("no1:%d \t no2:%d \t diff:%d\n"972no1:9 no2:7 diff:2 ) = 23 
 printf("no1:%d \t no2:%d \t diff:%d\n"88, 0no1:8 no2:8 diff:0 ) = 23 
 --- SIGFPE (Floating point exception) ---
 +++ killed by SIGFPE +++

显示系统调用:

 [guest@localhost tmp]$ ltrace -S ./a.out
 SYS_brk(NULL= 0x9e20000
 SYS_access(0xa4710f40xa4afc000xa4b644= 0
 SYS_open("/etc/ld.so.preload"002= 3
 SYS_fstat64(30xbfbd7a940xa4afc0-13= 0
 SYS_mmap2(017323= 0xb7f2a000
 SYS_close(3= 0
 SYS_open("/lib/libcwait.so"000= 3
 SYS_read(3"\177ELF\001\001\001"512= 512
 SYS_fstat64(30xbfbd76fc0xa4afc040xa4b658= 0
 SYS_mmap2(04096334-1= 0xb7f29000
 SYS_mmap2(05544520503= 0x423000
 SYS_mmap2(0x4240004096320663= 0x424000
 .............省去若干行

以上是“Linux中ltrace命令有什么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×