![带行号的 strace 命令](https://linux22.com/image/12951/%E5%B8%A6%E8%A1%8C%E5%8F%B7%E7%9A%84%20strace%20%E5%91%BD%E4%BB%A4.png)
我想使用 strace 命令来了解文件中特定行号的系统调用,例如 example.c 中的第 9 行。有人知道如何做到这一点吗?
答案1
在前一行上做一些在 strace 输出中很容易识别的事情,例如
open ("/line8", O_RDONLY);
类似地,下一行也有一些独特的东西。然后编译以-O0
防止编译器重新排列这些操作。
答案2
您将需要比 更重型的东西strace
。使用像gdb
(或curses 包装版本)这样的调试器,这将相当容易cgdb
。
example.c
如果您直接进行系统调用,您也许能够让某些东西正常工作。问题在于,通过库example.c
和进行系统调用的源之间可能存在多个级别的调用。