用于更好调试的 strace 技巧

主要观点:作者近期构建无 libc 的软件以更好地理解 Linux 系统调用和内部机制,包括一些项目如最小 shell终端 Snake 游戏、纯 ARM64 汇编HTTP 服务器线程实现,并广泛使用strace调试。
关键信息:

  • 有用的strace选项和标志,如-f跟踪子进程/线程,-v打印未缩写的系统调用结构,-s NUM指定最大字符串大小,-o保存输出到日志文件等。
  • strace-k--stack-trace可打印堆栈跟踪。
  • 可通过-e选项选择性地跟踪系统调用,如-e t=%net跟踪网络相关系统调用等,还可通过-z-Z-P等选项跟踪特定情况的系统调用。
  • strace可通过-e inject篡改系统调用,如注入错误等,方便调试系统调用的失败情况。
    重要细节:作者在构建不同软件过程中利用strace的各种功能进行调试,详细介绍了每个选项的作用和使用场景,以及strace在篡改系统调用方面的应用和效果。
阅读 7
0 条评论