嵌入式开发debug工具(1)——strace

  1. 追踪特定的系统调用,可以使用 -e trace= 选项来指定。
strace -e trace=open,close command

这个命令只会输出 open 和 close 系统调用的相关信息。

  1. 使用 -v 选项,strace 会输出更详细的系统调用信息。
strace -v command
  1. 可以将 strace 的输出重定向到文件,以便于后续分析。
strace -o trace_output.txt command

这个命令会将跟踪结果输出到 trace_output.txt 文件中。

  1. 按系统调用返回值过滤
strace -e fault=epoll_wait command

这将跟踪 epoll_wait 调用并显示那些返回错误的调用。

  1. 默认情况下,strace 只跟踪它启动的进程。如果需要跟踪子进程,可以使用 -f 选项。
strace -f command

使用 -f 选项后,strace 会跟踪父进程以及它创建的所有子进程。

  1. strace 可以跟踪进程接收到的信号。
strace -e signal=kill command

这将只显示与 kill 信号相关的信息。

  1. 当使用 strace 跟踪的程序需要参数时,可以使用 -- 来分隔 strace 的选项和程序的参数。
strace -o trace_output.txt -- command arg1 arg2

这样,strace 会将跟踪输出到 trace_output.txt,并使用 arg1 和 arg2 作为程序的参数。

  1. strace 可以与其他工具如 grepawk 结合使用,进行更复杂的分析和过滤。
strace -o trace_output.txt command 2>&1 | grep 'open' | awk '{print $1}'

这个命令会运行 command,将 strace 的输出重定向到 trace_output.txt,然后通过 grep 和 awk 进行过滤和分析。

posted on 2025-08-29 14:10  CharXL  阅读(8)  评论(0)    收藏  举报