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