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

agn*_*hik 5 gdb

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

Emp*_*ian 7

您可以让GDB在每次write系统调用时停止catch syscall write.

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

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

其他系统可以具有lsof或者用于执行相同的其他系统特定机制.

获得文件描述符后,可以进行catch条件化(因此GDB仅在写入特定文件时停止).有关如何操作的具体细节在操作系统和处理器之间有所不同,而您也没有提供.