Linux strace命令详解
语法
strace [ -dDffhiqrtttTvVxx ] [ -a column ] [ -e expr ] ... [ -o file ] [ -p pid ] ... [ -s strsize ] [ -u username ] [ -E var=val ] ... [ -E var ] ... [ command [ arg ... ] ]
strace -c [ -D ] [ -eexpr ] ... [ -Ooverhead ] [ -Ssortby ] [ command [ arg ... ] ]
说明
在最简单的情况下,strace运行指定的命令,直到它退出。它拦截并记录进程调用的系统调用和进程接收到的信号。每个系统调用的名称、参数及其返回值都打印在标准错误或用-o选项指定的文件中。
strace是一个有用的诊断、指导和调试工具。系统管理员、诊断人员和故障排除人员将发现,它对于解决源代码不易获得的程序的问题是非常宝贵的,因为它们不需要为了跟踪而重新编译。学生、黑客和过于好奇的人会发现,通过追踪甚至是普通的程序,可以了解到很多关于系统及其系统调用的信息。程序员会发现,由于系统调用和信号都是发生在用户/内核界面上的事件,因此仔细检查这个边界对于错误隔离、健全性检查和试图捕获竞争条件非常有用。
跟踪中的每一行都包含系统调用名,以及包含在括号中的参数及其返回值。对命令cat /dev/null
进行扫描的示例如下:
open("/dev/null", O_RDONLY) = 3
错误(通常返回值为-1)附加了errno符号和错误字符串:
open("/foo/bar", O_RDONLY) = -1 ENOENT (No such file or directory)
信号被打印成信号符号和信号串。“sleep 666”命令的扫描和中断摘录如下:
sigsuspend([] <unfinished ...>
--- SIGINT (Interrupt) ---
+++ killed by SIGINT +++
如果一个系统调用正在执行,而另一个系统调用正在从不同的线程/进程调用,那么strace将尝试保持这些事件的顺序,并将正在进行的调用标记为未完成。当呼叫返回时,它将被标记为已恢复:
[pid 28772] select(4, [3], NULL, NULL, NULL <unfinished ...>
[pid 28779] clock_gettime(CLOCK_REALTIME, {1130322148, 939977000}) = 0
[pid 28772] <... select resumed> ) = 1 (in [3])
参考:
https://linux.die.net/man/1/strace
Linux strace命令详解相关推荐
- linux的strace命令(详解)
linux的strace命令(详解) 本文详细讲述linux下的strace命令的用法. strace 命令是一种强大的工具,它能够显示所有由用户空间程序发出的系统调用. strace 显示这些调用的 ...
- strace 命令详解
一.strace 是什么? 按照 strace 官网的描述,strace 是一个可用于诊断.调试和教学的 Linux 用户空间跟踪器.我们用它来监控用户空间进程和内核的交互,比如系统调用.信号传递.进 ...
- linux mingetty 命令详解
linux mingetty 命令详解 功能说明:精简版的getty. 语 法:mingetty [--long-hostname][--noclear][tty] 补充说明:mingetty适用于本 ...
- linux zip 命令详解
功能说明:压缩文件. 语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期 ...
- linux zipinfo 命令详解
linux zipinfo 命令详解 功能说明:列出压缩文件信息. 语 法:zipinfo [-12hlmMstTvz][压缩文件][文件...][-x <范本样式>] 补充说明:执行zi ...
- Linux chkconfig命令详解
Linux chkconfig命令详解 (2011-03-07 15:49:04) 转载 标签: linux shell chkconfig 杂谈 分类: 工作*Linux chkconfig: ...
- linux uname 命令详解
linux uname 命令详解 功能说明:显示系统信息. 语 法:uname [-amnrsv][--help][--version] 补充说明:uname可显示电脑以及操作系统的相关信息. 参 数 ...
- linux mread 命令详解
linux mread 命令详解 功能说明:将MS-DOS文件复制到Linux/Unix的目录中. 语 法:mread [MS-DOS文件...][Linux文件或目录] 补充说明:mread为mto ...
- linux sort 命令详解
linux sort 命令详解 sort命令的功能是对文件中的各行进行排序.sort命令有许多非常实用的选项,这些选项最初是用来对数据库格式的文件内容进行各种排序操作的.实际上,sort命令可以被认为 ...
- linux arpwatch 命令详解
linux arpwatch 命令详解 功能说明:监听网络上ARP的记录. 语 法:arpwatch [-d][-f<记录文件>][-i<接口>][-r<记录文件> ...
最新文章
- c++迭代器iterator通用吗_「ES6基础」迭代器(iterator)
- java精确除法计算,四舍五入 Java问题通用解决代码
- cortex M内核优先级设置
- rust相框加载图片代码_Rust 能取代 Python,更好的实现神经网络?
- (chap8 确认访问用户身份的认证) SSL客户端认证
- JavaScript中的数组循环方法
- 转子接地保护原理_发电机转子一点接地保护的研究
- Oracle 热备份
- kettle oracle数据从库到库,kettle 使用oracle数据库当做资源库
- [精华]世界500强面试题----[完整版]
- python贪吃蛇设计思路_Python深度剖析贪吃蛇游戏的设计与实现
- 牛客网刷题(Hw题库)
- (转)用4年多时间, 带领微软重登全球市值第一宝座, 纳德拉是如何做到的?
- cd rom是计算机的,CD-ROM是什么意思,CD-ROM是什么意思
- Linux和Windows学习日记5
- 【Android studio】使用雷电模拟器详细过程(或其他)(转)
- 谷歌浏览器——新建下载任务
- R语言 关于h2o深度学习的一些心得
- 如何把pdf文件放到服务器,将生成的PDF文件存储在服务器上
- 用linux模拟彩票摇号器下载,大乐透模拟摇奖器拟选号器
热门文章
- 4.在屏幕上输出以下图案: * *** ***** ******* ********* *********** ************* *********** *********
- 你与30W奖金只差一个 Apache Flink 极客挑战赛的报名
- 贫穷是我们变得牛逼的动力
- 做自己的软件的Gallery(一)
- html5 密码强度,前端开发判断输入密码强度
- centos llvm安装_CentOS7.x安装LLVM6.0
- loadrunner 操作mysql_loadrunner动态从mysql取值
- 双屏鼠标经常跑到副屏_双屏游戏本什么体验?上手ROG冰刃双屏:效率直接拉满...
- python导入自己写的包_python的模块,包和目录的区别和自定义包的注意点
- list循环添加数据_笔记 | 自学Python 06:数据类型之列表