strace
命令详解
命令是一种强大的工具,它能够显示所有由用户空间程序发出的
系统调用。
显示这些调用的参数并返回符号形式的值。从内核接收信
息,而且不需要以任何特殊的方式来构建内核。
下面记录几个常用
选项告诉 同时跟踪 和 出来的进程
输出到某个文件。
只记录 这类系统调用
—————————————————
进程无法启动,软件运行速度突然变慢,程序的 !"等等都
是让每个 # 系统用户头痛的问题,
本文通过三个实际案例演示如何使用 !、 和 " 这三个常用
的调试工具来快速诊断软件的疑难杂症。
! 和 用来跟踪一个进程的系统调用或信号产生的情况,而
" 用来跟踪进程调用库函数的情况。! 是早期为 $%&' 开发的
调试程序,包括 (、) 在内的大部分 # 系统都自带了这个工具;
而 最初是为 !* 系统编写的," 最早出现
在 +,#-.! 中。
这两个工具现在也已被移植到了大部分 # 系统中,大多数 .! 发行
版都自带了 和 ",而 ) 也可通过 / 安装它们。
你不仅可以从命令行调试一个新开始的程序,也可以把 !、 或
" 绑定到一个已有的 /0 上来调试一个正在运行的程序。三个调试工具的
基本使用方法大体相同,下面仅介绍三者共有,而且是最常用的三个命令行参
数:
:除了跟踪当前进程外,还跟踪其子进程。
1":将输出信息写到文件 1" 中,而不是显示到标准错误输出
(2)。
2:绑定到一个由 2 对应的正在运行的进程。此参数常用来调试后
台进程。
使用上述三个参数基本上就可以完成大多数调试任务了,下面举几个命令
行例子:
!"!"": 跟踪 "" 的运行,将输出信息写到文
件--"! 中。
: 跟踪 及其子进程的运行,将输出信
息写到文件 。