Delphi7:数据断点警告的实际原因

Delphi 7: Actual reason for a data breakpoint warning

在 Delphi 7,我收到一条警告信息:"Setting a Data Breakpoint on a stack location may cause your program or system to become unstable. Set breakpoint anyway?"。此消息的简短描述 并未 解释程序(或系统)可能变得不稳定的原因。它只是说它可能会发生。

请您具体说明,原因why/when程序(或系统)会不稳定。

数据断点由指定位置的内存写入操作触发。检测这些操作,无论是使用硬件断点还是其他技术,据我所知,都不会导致程序不稳定,更不用说整个系统了。

但是在堆栈区域中创建数据断点存在问题。这些问题可能会导致 调试器行为 ,这几乎肯定是不可取的,并且可以考虑 "instability",因为断点的数量和频率使调试器无法使用。

但这只是 可以使 "system" 或 "program" 变得不稳定的程度。

错误消息很可能使用了缩写语言,这在试图用适合简短错误消息的术语来传达这一点时可能会产生误导,因为实际、准确的解释既难以解释,也可能不太可能被许多开发人员理解。

也有可能在堆栈中放置数据断点 did 有可能在 Win32 之前导致更广泛的系统问题(我不确定,但我可以想象这是可能的——在Win16下,一个程序失败肯定更容易让整个系统崩溃);即此消息是 Delphi 1 的遗留消息,只是没有更新以反映进程在 Win32 下享有的更大保护。