嵌入式开发debug工具(1)——strace
- 追踪特定的系统调用,可以使用
-e trace=选项来指定。
strace -e trace=open,close command
这个命令只会输出 open 和 close 系统调用的相关信息。
- 使用
-v选项,strace会输出更详细的系统调用信息。
strace -v command
- 可以将
strace的输出重定向到文件,以便于后续分析。
strace -o trace_output.txt command
这个命令会将跟踪结果输出到 trace_output.txt 文件中。
- 按系统调用返回值过滤
strace -e fault=epoll_wait command
这将跟踪 epoll_wait 调用并显示那些返回错误的调用。
- 默认情况下,
strace只跟踪它启动的进程。如果需要跟踪子进程,可以使用-f选项。
strace -f command
使用 -f 选项后,strace 会跟踪父进程以及它创建的所有子进程。
strace可以跟踪进程接收到的信号。
strace -e signal=kill command
这将只显示与 kill 信号相关的信息。
- 当使用
strace跟踪的程序需要参数时,可以使用--来分隔strace的选项和程序的参数。
strace -o trace_output.txt -- command arg1 arg2
这样,strace 会将跟踪输出到 trace_output.txt,并使用 arg1 和 arg2 作为程序的参数。
strace可以与其他工具如grep、awk结合使用,进行更复杂的分析和过滤。
strace -o trace_output.txt command 2>&1 | grep 'open' | awk '{print $1}'
这个命令会运行 command,将 strace 的输出重定向到 trace_output.txt,然后通过 grep 和 awk 进行过滤和分析。
浙公网安备 33010602011771号