语法

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命令详解相关推荐

  1. linux的strace命令(详解)

    linux的strace命令(详解) 本文详细讲述linux下的strace命令的用法. strace 命令是一种强大的工具,它能够显示所有由用户空间程序发出的系统调用. strace 显示这些调用的 ...

  2. strace 命令详解

    一.strace 是什么? 按照 strace 官网的描述,strace 是一个可用于诊断.调试和教学的 Linux 用户空间跟踪器.我们用它来监控用户空间进程和内核的交互,比如系统调用.信号传递.进 ...

  3. linux mingetty 命令详解

    linux mingetty 命令详解 功能说明:精简版的getty. 语 法:mingetty [--long-hostname][--noclear][tty] 补充说明:mingetty适用于本 ...

  4. linux zip 命令详解

    功能说明:压缩文件.  语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期 ...

  5. linux zipinfo 命令详解

    linux zipinfo 命令详解 功能说明:列出压缩文件信息. 语 法:zipinfo [-12hlmMstTvz][压缩文件][文件...][-x <范本样式>] 补充说明:执行zi ...

  6. Linux chkconfig命令详解

    Linux chkconfig命令详解 (2011-03-07 15:49:04) 转载 标签: linux shell chkconfig 杂谈 分类: 工作*Linux chkconfig:    ...

  7. linux uname 命令详解

    linux uname 命令详解 功能说明:显示系统信息. 语 法:uname [-amnrsv][--help][--version] 补充说明:uname可显示电脑以及操作系统的相关信息. 参 数 ...

  8. linux mread 命令详解

    linux mread 命令详解 功能说明:将MS-DOS文件复制到Linux/Unix的目录中. 语 法:mread [MS-DOS文件...][Linux文件或目录] 补充说明:mread为mto ...

  9. linux sort 命令详解

    linux sort 命令详解 sort命令的功能是对文件中的各行进行排序.sort命令有许多非常实用的选项,这些选项最初是用来对数据库格式的文件内容进行各种排序操作的.实际上,sort命令可以被认为 ...

  10. linux arpwatch 命令详解

    linux arpwatch 命令详解 功能说明:监听网络上ARP的记录. 语 法:arpwatch [-d][-f<记录文件>][-i<接口>][-r<记录文件> ...

最新文章

  1. c++迭代器iterator通用吗_「ES6基础」迭代器(iterator)
  2. java精确除法计算,四舍五入 Java问题通用解决代码
  3. cortex M内核优先级设置
  4. rust相框加载图片代码_Rust 能取代 Python,更好的实现神经网络?
  5. (chap8 确认访问用户身份的认证) SSL客户端认证
  6. JavaScript中的数组循环方法
  7. 转子接地保护原理_发电机转子一点接地保护的研究
  8. Oracle 热备份
  9. kettle oracle数据从库到库,kettle 使用oracle数据库当做资源库
  10. [精华]世界500强面试题----[完整版]
  11. python贪吃蛇设计思路_Python深度剖析贪吃蛇游戏的设计与实现
  12. 牛客网刷题(Hw题库)
  13. (转)用4年多时间, 带领微软重登全球市值第一宝座, 纳德拉是如何做到的?
  14. cd rom是计算机的,CD-ROM是什么意思,CD-ROM是什么意思
  15. Linux和Windows学习日记5
  16. 【Android studio】使用雷电模拟器详细过程(或其他)(转)
  17. 谷歌浏览器——新建下载任务
  18. R语言 关于h2o深度学习的一些心得
  19. 如何把pdf文件放到服务器,将生成的PDF文件存储在服务器上
  20. 用linux模拟彩票摇号器下载,大乐透模拟摇奖器拟选号器

热门文章

  1. 4.在屏幕上输出以下图案: * *** ***** ******* ********* *********** ************* *********** *********
  2. 你与30W奖金只差一个 Apache Flink 极客挑战赛的报名
  3. 贫穷是我们变得牛逼的动力
  4. 做自己的软件的Gallery(一)
  5. html5 密码强度,前端开发判断输入密码强度
  6. centos llvm安装_CentOS7.x安装LLVM6.0
  7. loadrunner 操作mysql_loadrunner动态从mysql取值
  8. 双屏鼠标经常跑到副屏_双屏游戏本什么体验?上手ROG冰刃双屏:效率直接拉满...
  9. python导入自己写的包_python的模块,包和目录的区别和自定义包的注意点
  10. list循环添加数据_笔记 | 自学Python 06:数据类型之列表