带行号的 strace 命令

带行号的 strace 命令

我想使用 strace 命令来了解文件中特定行号的系统调用,例如 example.c 中的第 9 行。有人知道如何做到这一点吗?

答案1

在前一行上做一些在 strace 输出中很容易识别的事情,例如

open ("/line8", O_RDONLY);

类似地,下一行也有一些独特的东西。然后编译以-O0防止编译器重新排列这些操作。

答案2

您将需要比 更重型的东西strace。使用像gdb(或curses 包装版本)这样的调试器,这将相当容易cgdb

example.c如果您直接进行系统调用,您也许能够让某些东西正常工作。问题在于,通过库example.c和进行系统调用的源之间可能存在多个级别的调用。

相关内容