3

有没有人有硬件断点可以在 64 位 XP 上工作,如果有的话怎么办?

我们有一个使用硬件断点的应用程序,它已经在 32 位 XP 和 32 位 Vista 操作系统上运行了一段时间。然而,将我们的代码移植到 64 位后,当应用程序在 64 位 XP 上运行时会崩溃,而在 64 位 Vista 上运行时则不会。该应用程序是在 XP 上编译和构建的。

在设置断点 (DR7=1) 后,我们将其隔离为线程恢复。如果我们提出一个文件对话框并且表单上的 GUI 控件相当不稳定,就会发生崩溃。奇怪的是,如果在设置断点并观察不稳定的 GUI 之后,我们禁用断点 (DR7=0),GUI 会再次开始正常运行,并且打开文件对话框不会导致崩溃。

我们已经用其他示例断点设置代码替换了我们的断点设置代码,并且每个示例都有相同的问题。

4

3 回答 3

1

Visual Studio 有数据断点。您可以将调试器设置为在写入特定内存地址时停止。

http://msdn.microsoft.com/en-us/library/350dyxd0.aspx

于 2012-05-09T22:47:01.107 回答
1

有没有人有硬件断点可以在 64 位 XP 上工作,如果有的话怎么办?

我想那是不行的!

您可以在 Visual Studio 中创建一个简单的 MFC 应用程序,并在调试器中设置一个硬件断点,例如数据断点,该应用程序将展示与您所描述的相同的行为。

与 Vista/7 代码库相比,XP x64 有时确实显得有些混乱。因此,Microsoft的一些较新产品(包括 Office 2010)根本不支持 XP x64 也就不足为奇了。

于 2010-02-05T15:01:35.240 回答
1

Codeproject 上有一个有趣的项目:“Toggle hardware data/read/execute breakpoints programmatically”

于 2010-07-28T07:03:02.580 回答