strace应该如何使用?

一位同事曾经告诉我,在Linux上一切调试失败时,最后的选择是使用strace。


我试图学习这种奇怪工具背后的科学知识,但是我不是系统管理员,我并没有真正获得结果。


所以,


到底是什么,它做什么?

应该如何使用?在哪种情况下应使用?

应该如何理解和处理输出?

总之,在简单的话,请问这个东西工作?


蝴蝶不菲
浏览 535回答 3
3回答

宝慕林4294392

Strace概述strace可以看作是轻量级的调试器。它允许程序员/用户快速找出程序如何与OS交互。它通过监视系统调用和信号来做到这一点。当您没有源代码或不想为真正的源代码而烦恼时,可以使用 Good。另外,如果您不想打开GDB,而只是想了解外部交互,则对您自己的代码很有用。前几天我对strace进行了介绍,这是一个很好的小介绍:strace hello world

largeQ

简而言之,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
打开App,查看更多内容
随时随地看视频慕课网APP