ltrace

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(0x80484aa, 1, 0xbfc07744, 0x8048550, 0x8048540 <unfinished ...>
printf("no1:%d \t no2:%d \t diff:%d\n", 10, 6, 4no1:10 no2:6 diff:4 ) = 24
printf("no1:%d \t no2:%d \t diff:%d\n", 9, 7, 2no1:9 no2:7 diff:2 ) = 23
printf("no1:%d \t no2:%d \t diff:%d\n", 8, 8, 0no1:8 no2:8 diff:0 ) = 23
--- SIGFPE (Floating point exception) ---
+++ killed by SIGFPE +++

输出调用时间开销:

[guest@localhost tmp]$ ltrace -T ./a.out
__libc_start_main(0x80484aa, 1, 0xbf81d394, 0x8048550, 0x8048540 <unfinished ...>
printf("no1:%d \t no2:%d \t diff:%d\n", 10, 6, 4no1:10 no2:6 diff:4 ) = 24 <0.000972>
printf("no1:%d \t no2:%d \t diff:%d\n", 9, 7, 2no1:9 no2:7 diff:2 ) = 23 <0.000155>
printf("no1:%d \t no2:%d \t diff:%d\n", 8, 8, 0no1:8 no2:8 diff:0 ) = 23 <0.000153>
--- SIGFPE (Floating point exception) ---
+++ killed by SIGFPE +++

显示系统调用:

[guest@localhost tmp]$ ltrace -S ./a.out
SYS_brk(NULL) = 0x9e20000
SYS_access(0xa4710f, 4, 0xa4afc0, 0, 0xa4b644) = 0
SYS_open("/etc/ld.so.preload", 0, 02) = 3
SYS_fstat64(3, 0xbfbd7a94, 0xa4afc0, -1, 3) = 0
SYS_mmap2(0, 17, 3, 2, 3) = 0xb7f2a000
SYS_close(3) = 0
SYS_open("/lib/libcwait.so", 0, 00) = 3
SYS_read(3, "\177ELF\001\001\001", 512) = 512
SYS_fstat64(3, 0xbfbd76fc, 0xa4afc0, 4, 0xa4b658) = 0
SYS_mmap2(0, 4096, 3, 34, -1) = 0xb7f29000
SYS_mmap2(0, 5544, 5, 2050, 3) = 0x423000
SYS_mmap2(0x424000, 4096, 3, 2066, 3) = 0x424000
.............省去若干行

若文章对你有帮助,可以点赞或打赏支持我们。发布者:Aurora,转载请注明出处:http://61.174.243.28:13541/AY-knowledg-hub/ltrace/

(0)
AuroraAurora站点维系者
上一篇 2023年 12月 19日 下午4:39
下一篇 2023年 12月 19日 下午4:39

相关推荐

  • logrotate

    文章目录logrotate补充说明语法选项参数实例注意事项 logrotate 系统日志进行轮转、压缩和删除 补充说明 logrotate命令 用于对系统日志进行轮转、压缩和删除,…

    入门教程 2023年 12月 19日
  • slabtop

    文章目录slabtop补充说明语法选项知识扩展实例 slabtop 实时显示内核slab内存缓存信息 补充说明 slabtop命令 以实时的方式显示内核“slab”缓冲区的细节信息…

    入门教程 2024年 3月 5日
  • cp

    文章目录cp补充说明语法选项参数实例 cp 将源文件或目录复制到目标文件或目录中 补充说明 cp命令 用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复…

    入门教程 2023年 12月 7日
  • Pandas JSON

    JSON(JavaScript Object Notation,JavaScript 对象表示法),是存储和交换文本信息的语法,类似 XML。 JSON 比 XML 更小、更快,更…

    2023年 5月 16日
  • id

    文章目录id概要主要用途选项参数返回值例子注意 id 打印真实以及有效的用户和所在组的信息 概要 id [OPTION]… [USER]… 主要用途 没有选项时,打印指定用…

    入门教程 2023年 12月 19日
  • lpr

    文章目录lpr补充说明语法选项参数实例 lpr 将文件发送给指定打印机进行打印 补充说明 lpr命令 用于将文件发送给指定打印机进行打印,如果不指定目标打印机,则使用默认打印机。 …

    入门教程 2023年 12月 19日
  • dhcpd

    文章目录dhcpd语法选项例子 dhcpd 运行DHCP服务器 语法 dhcpd [选项] [网络接口] 选项 -p <端口> 指定dhcpd监听的端口 -f 作为前台…

    入门教程 2023年 12月 7日
  • ftpshut

    ftpshut 在指定的时间关闭FTP服务器 补充说明 功能说明:在指定的时间关闭ftp服务器。本指令提供系统管理者在设置的时间关闭FTP服务器,且能在关闭之前发出警告信息通知用户…

    入门教程 2023年 12月 14日
  • atrm

    文章目录atrm补充说明语法选项参数实例 atrm 删除待执行任务队列中的指定任务 补充说明 atrm命令 用于删除待执行任务队列中的指定任务。 语法 atrm(选项)(参数) 选…

    入门教程 2023年 12月 6日
  • chgrp

    文章目录chgrp补充说明语法选项参数实例 chgrp 用来变更文件或目录的所属群组 补充说明 chgrp命令 用来改变文件或目录所属的用户组。该命令用来改变指定文件所属的用户组。…

    入门教程 2023年 12月 7日

发表回复

登录后才能评论
Translate »