linux诊断工具下载,自助Linux之问题诊断工具strace

自助Linux之问题诊断工具

引言

“Oops,系统挂死了..."

“Oops,程序崩溃了..."

“Oops,命令执行报错..."

对于维护人员来说,这样的悲剧每天都在上演。理想情况下,系统或应用程序的错误日志提供了足够全面的信息,通过查看相关日志,维护人员就能很快地定位出问题发生的原因。但现实情况,许多错误日志打印模凌两可,更多地描述了出错时的现象(比如"could not open file","connect to XXX time out"),而非出错的原因。

错误日志不能满足定位问题的需求,我们能从更“深层”的方面着手分析吗?程序或命令的执行,需要通过系统调用(system call)与操作系统产生交互,其实我们可以通过观察这些系统调用及其参数、返回值,界定出错的范围,甚至找出问题出现的根因。

在Linux中,strace就是这样一款工具。通过它,我们可以跟踪程序执行过程中产生的系统调用及接收到的信号,帮助我们分析程序或命令执行中遇到的异常情况。

一个简单的例子

如何使用strace对程序进行跟踪,如何查看相应的输出?下面我们通过一个例子来说明。

1.被跟踪程序示例

1-14-png_6_0_0_135_1064_22_22_892.979_1262.879-20-0-1733-20.jpg

//main.c

#include

#include

#include

int main( )

{

int fd ;

int i = 0 ;

fd = open( “/tmp/foo”, O_RDONLY ) ;

if ( fd < 0 )

i=5;

else

i=2;

return i;

}

以上程序尝试以只读的方式打开/tmp/foo文件,然后退出,其中只使用了open这一个系统调用函数。之后我们对该程序进行编译,生成可执行文件:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值