strace应该如何使用?

12 浏览
0 Comments

strace应该如何使用?

一位同事曾告诉我,在 Linux 上如果所有调试失败,最后的选择是使用 strace

我尝试了解这个奇怪工具背后的科学,但我不是系统管理大师,结果并不明显。

因此,

  • 它究竟是什么,有什么作用?
  • 如何以及在哪些情况下使用?
  • 输出如何理解和处理?

简言之,它是如何工作的?

admin 更改状态以发布 2023年5月23日
0
0 Comments

简单来说,strace跟踪程序发出的所有系统调用以及它们的返回值。这包括文件/套接字操作以及更多的晦涩操作。

如果您有C的一些工作知识,那么这将非常有用,因为这里的系统调用通常指标准C库调用。

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

strace /usr/local/bin/cough 

strace -o  /usr/local/bin/cough 

写入'out_file'。

所有的strace输出将会一直被输出到stderr(注意,它的体积经常需要被重定向到文件)。在最简单的情况下,您的程序将会有错误并且您可以在strace的输出中看到它最后与操作系统的交互。

更多的信息可以通过以下方式获得:

man strace

0
0 Comments

Strace概述
strace可以看作是一个轻量级的调试器。它允许程序员/用户快速了解程序如何与操作系统互动。它通过监视系统调用和信号来实现这一功能。

用途
当你没有源代码或者不想麻烦地去深入了解源代码时很有用。
此外,如果你只是想理解外部互动,但不想打开GDB,它也很有用。

一个很好的小介绍
这里是一个使用strace调试进程挂起的简单介绍:strace介绍

0