LINUX ltrace命令-用来跟踪进程调用库函数的情况学习
参考链接:
http://www.bluestep.cc/linux-ltrace%E5%91%BD%E4%BB%A4-%E7%94%A8%E6%9D%A5%E8%B7%9F%E8%B8%AA%E8%BF%9B%E7%A8%8B%E8%B0%83%E7%94%A8%E5%BA%93%E5%87%BD%E6%95%B0%E7%9A%84%E6%83%85%E5%86%B5/
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
.............省去若干行
LINUX ltrace命令-用来跟踪进程调用库函数的情况学习相关推荐
- 9.11 strace:跟踪进程的系统调用 、ltrace:跟踪进程调用库函数
strace 是Linux环境下的一款程序调试工具,用于检查一个应用程序所使用的系统调用以及它所接收的系统信息.strace会追踪程序运行时的整个生命周期,输出每一个系统调用的名字.参数.返回值和执行 ...
- strace,ltrace linux下跟踪进程调用的命令
本工具可以用来做大多数排除,比如mount一个NFS,很慢,找不出原因,我们可以使用strace命令来跟中mount这个经常所有的调用过程. strace 命令是一种强大的工具,它能够显示所有由 ...
- linux ps内存占用率,linux ps命令,查看某进程cpu和内存占用率情况, linux ps命令,查看进程cpu和内存占用率排序。 不指定...
背景:有时需要单看某个进程的CPU及占用情况,有时需要看整体进程的一个占用情况. 一. linux ps命令,查看某进程cpu和内存占用率情况 [root@test vhost]# ps aux US ...
- linux服务进程文件,[Linux实用命令]-6-服务与进程管理
引言 这篇文章前半部分实例演示Linux系统服务管理相关命令,介绍系统服务的预设启动脚本放置的位置,以及如何启动和停止某个特定服务:后半部分会实例演示几个常用的用来管理系统进程的命令. 文章目录 0× ...
- pstack 安装linux_linux下跟踪进程调用栈strace pstack gstack
pstack PID gstack PID top -H -p PID 引子: 1.在Linux系统中,进程状态除了我们所熟知的TASK_RUNNING,TASK_INTERRUPTIBLE,TASK ...
- linux conntrack命令 路由连接 跟踪表 显示删除监听记录
conntrack命令可以显示,删除和更新跟踪表现有状态条目,还可以监听流事件 1.安装: yum install -y conntrack 2.使用: 查看conntrack表记录 conntrac ...
- c语言实现输入输出功能需要调用库函数,C语言学习笔记(二)
格式字符的输入和输出 1.C语句的分类 1)控制语句 if...else ; continue ; switch ; break ; for(....) ; goto ; while(....) ...
- linux常用命令、linux系统、linux属于什么操作系统、linux系统安装、linux怎么读、linux和windows的区别、linux配置ip地址、linux系统一般用来,在线查询工具
linux vi编辑器常用命令 linux 查看ip linux find -name 查找文件名 linux shell linux 查看端口占用 linux 删除文件命令 linux cp命令复制 ...
- Linux必备命令汇总
文章目录 帮助命令 文件和目录操作命令 查看文件及内容处理命令 文件压缩及解压缩命令 信息显示命令 搜索文件命令 用户管理命令 基础网络操作命令 深入网络操作命令 有关磁盘与文件系统的命令(16个) ...
最新文章
- 响应式开发一招致胜 学习视频 分享
- Table表格的单元格提示
- PHP怎样防止小数点精度不丢失,javascript小数精度丢失的完美解决方法
- leetcode1221. 分割平衡字符串(贪心算法)
- 基于tkinter模块创建GUI程序(python)
- 组织体互联网是个啥?
- 华晨中华v3车质量怎么样_宝马发动机加持,销量仅个位数?这些车有点惨
- Sql Server 2005如何导入DBF文件?
- ansible-handlers
- JDK1.4下载 JRE1.4下载
- 分布式长连接 session 共享解决方案
- 机器人操作空间轨迹规划 -- 姿态规划
- 洛谷 P4234 LCT + 排序 + 枚举
- android 系统的切图方式_UI设计规范一Android尺寸单位换算及切图规范
- M1 Macbook崩溃了怎么办?
- 【AR】AR 的几种底层实现方式
- 2021 China Open Source Annual Report
- java体系的中间件适用于go吗,Go语言经典库使用分析(五)| Negroni 中间件(一)...
- 流畅的python读书笔记④:文本和字节序列
- 微小宝公众号排行榜_无锡校园公众号排行榜(11.15—11.21)
热门文章
- Android总结 之 AsyncTask(二)
- 【已解决】TypeError: ‘<‘ not supported between instances of ‘str‘ and ‘int‘_Python系列学习笔记
- 11行代码AC——习题2-4 子序列的和(subsequence)——解题报告
- QT Creator应用程序开发——信号与槽
- iapp启动图代码_代码神器:拒绝重复编码,这款IDEA插件了解一下.....
- mybatis mysql查询树形结构_MyBatis collection 集合嵌套查询树形节点
- tomcat闪退没有报错_Appium在Android平台几种常见报错的解决方案
- python爬虫之美女图片爬取
- Android 服务器推送技术
- js代码判断身份证号合法性