如何在写入名称已知的特定文件时停止gdb中的程序

时间:2011-11-08 11:06:20

标签: gdb

如何在gdb中设置断点,以便在每次写入名称已知的特定文件时停止程序?

1 个答案:

答案 0 :(得分:7)

您可以通过write让每个catch syscall write次系统调用停止使用GDB。

由于write对文件描述符进行操作,而不对命名文件进行操作,因此不能使该断点以名称为条件;你必须首先找到与你的“有趣”文件相对应的文件描述符。

在Linux上,您可以查看ls -l /proc/<pid>/fd/*以将文件描述符与名称相关联。

其他系统可能具有lsof或其他系统特定的机制来执行相同操作。

获得文件描述符后,可以使catch成为条件(因此GDB仅在写入特定文件时停止)。有关如何操作的具体细节因操作系统和处理器而异,您也没有提供。