XP 64位上的硬件断点

时间:2010-01-29 15:10:51

标签: debugging windows-xp 64-bit breakpoints hardware-traps

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

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

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

我们已将断点设置代码替换为其他示例断点设置代码,每个示例都有相同的问题。

3 个答案:

答案 0 :(得分:1)

  

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

我猜那是不行的!

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

与Vista / 7代码库相比,XP x64似乎确实有些混乱。因此,对于包括Office 2010在内的一些新产品,微软不支持XP x64 也就不足为奇了。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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