为了账号安全,请及时绑定邮箱和手机立即绑定

strace应该如何使用?

strace应该如何使用?

蝴蝶不菲 2019-10-14 10:14:57
一位同事曾经告诉我,在Linux上一切调试失败时,最后的选择是使用strace。我试图学习这种奇怪工具背后的科学知识,但是我不是系统管理员,我并没有真正获得结果。所以,到底是什么,它做什么?应该如何使用?在哪种情况下应使用?应该如何理解和处理输出?总之,在简单的话,请问这个东西工作?
查看完整描述

3 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

Strace概述

strace可以看作是轻量级的调试器。它允许程序员/用户快速找出程序如何与OS交互。它通过监视系统调用和信号来做到这一点。



当您没有源代码或不想为真正的源代码而烦恼时,可以使用 Good。

另外,如果您不想打开GDB,而只是想了解外部交互,则对您自己的代码很有用。


几天我对strace进行了介绍,这是一个很好的小介绍:strace hello world


查看完整回答
反对 回复 2019-10-14
?
largeQ

TA贡献2039条经验 获得超7个赞

简而言之,strace跟踪程序发出的所有系统调用及其返回代码。考虑一下诸如文件/套接字操作之类的事情,以及更多晦涩难懂的事情。


如果您对C有一定的了解,这将非常有用,因为这里的系统调用将更准确地代表标准C库调用。


假设您的程序是/ usr / local / bin / cough。只需使用:


strace /usr/local/bin/cough <any required argument for cough here>

要么


strace -o <out_file> /usr/local/bin/cough <any required argument for cough here>

写入“ out_file”。


所有strace输出都将发送到stderr(请注意,其庞大的体积通常要求重定向到文件)。在最简单的情况下,您的程序将因错误而中止,您将能够在strace输出中查看其与操作系统的最后交互作用。


更多信息应与:


man strace


查看完整回答
反对 回复 2019-10-14
  • 3 回答
  • 0 关注
  • 534 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信