【发布时间】:2016-03-24 07:08:21
【问题描述】:
在调试我的程序时,我想观察程序对文件所做的更改,并且我希望调试器在发生这种情况时告诉我
我正在调试一个创建或修改某些文件(比如说文本文件)的程序。可以从程序中的多个位置修改文件,并且可以多次修改文件。修改顺序很重要。我正在寻找一种在文件上设置观察点的方法,就像我们在变量上设置一样。基本上我希望程序在文件被修改时中断,以便我可以分析文件内容并进一步观察程序。有没有办法做到这一点?
【问题讨论】:
-
在 fprintf / write 或用于写入文件的任何函数上放置断点。或者为这些函数实现一个包装器并添加日志记录。
-
但这完全会破坏 frprintf。它不会是特定于文件的。我希望它只针对我想要观察的特定文件中断
-
您是否需要检测文件何时被实际修改(使用
write、ftruncate、WriteFile等),或者何时缓存可能写入的数据的库例程稍后调用文件(fprintf,fputs,fwrite)?如果是后者,并且如果您正在使用 stdio 函数,那么在FILE结构的某些元素上放置一个观察点,虽然不可移植,但可能是最简单的方法。您使用的是什么操作系统?