Linux的strace工具使用

strace 是一个在 Linux 系统中用于跟踪进程执行时的系统调用和接收的信号的工具。它可以帮助开发者诊断程序运行时的问题,比如程序崩溃、性能问题等。下面是 strace 的一些常用命令行选项和它们的解释:

  1. 基本用法 :

    复制代码
    strace [选项] 命令 [参数...]
  2. 常用选项 :

    • -c: 统计每个系统调用的执行时间、调用次数和错误次数。
    • -f: 跟踪由 fork() 调用产生的子进程。
    • -p: 指定要跟踪的进程 ID。
    • -t: 在输出的每一行前加上时间戳。
    • -v: 输出详细的系统调用信息。
    • -o: 将输出的信息保存到文件中。
    • -e: 指定要跟踪的系统调用或者信号。
  3. 示例 :

    • 跟踪 cat 命令的系统调用:

      复制代码
      strace -c cat /dev/null
    • 跟踪进程 ID 为 1234 的进程的所有系统调用:

      复制代码
      strace -p 1234
    • 跟踪进程 ID 为 1234 的进程,并将输出保存到文件中:

      复制代码
      strace -p 1234 -o output.txt
    • 跟踪 open 系统调用和 close 系统调用:

      复制代码
      strace -e open,close cat /dev/null
  4. 高级用法 :

    • 使用 -a 选项来指定列的对齐方式。
    • 使用 -s 选项来指定字符串的长度。
    • 使用 -u 选项来指定用户名。
    • 使用 -e signal 来跟踪特定的信号。
  5. 信号跟踪 :
    当跟踪信号时,strace 会在信号处理函数前加上 ---,并在信号处理函数调用结束后加上信号的名称和错误码。

  6. 错误分析 :
    当系统调用出错时,strace 会显示错误码和错误描述。例如,ENOENT 表示文件或目录不存在。

  7. 性能分析 :
    使用 -T 选项来跟踪每个系统调用的花费时间。
    strace 是一个强大的工具,对于理解程序如何与操作系统交互非常有帮助。通过结合使用不同的选项,你可以获得关于程序运行的详细信息,从而帮助诊断和解决问题。

相关推荐
头发那是一根不剩了3 分钟前
Ubuntu 离线环境升级 OpenSSH 修复漏洞
linux·运维·ubuntu
程序员敲代码吗5 分钟前
打印机IP与SMTP服务器配置指南
服务器·网络协议·tcp/ip
别退10 分钟前
WSL2安装Freesurfer
linux·运维·服务器
KerwinChou_CN17 分钟前
LangGraph 快速入门
服务器·网络·算法
久绊A19 分钟前
H3C 交换机用户密码修改与策略管理指南
服务器·交换机·h3c
runepic21 分钟前
GeoServer在CentOS部署中文乱码显示方框终极解决方案
linux·运维·centos·geoserver
shamalee21 分钟前
MS SQL Server partition by 函数实战二 编排考场人员
java·服务器·开发语言
假如梵高是飞行员26 分钟前
Ubuntu 磁盘扩容
linux·运维·ubuntu
江湖有缘29 分钟前
从零搭建私密空间:使用 Docker一键部署DailyTxT加密日记系统
运维·docker·容器
我爱学习好爱好爱32 分钟前
ELK日志分析平台(四):Kibana 7.17.10 部署与基本配置(与ES01同机,基于Rocky Linux 9.6)
linux·运维·elk