如何禁用程序断点/断言?

时间:2020-03-06 14:32:34  来源:igfitidea点击:

我正在使用Visual Studio,正在开发本机应用程序,我在使用__asm int 3或者__debugbreak放置的代码中有一个编程断点(声明)。有时,当我点击它时,我想禁用它,以使同一调试会话中的连续命中不再打入调试器。我怎样才能做到这一点?

解决方案

x86 / x64

假设我们正在编写x86 / x64应用程序,请在监视窗口中编写以下代码:

x86:*(char *)eip,x

x64:*(char *)rip,x

我们应该看到一个值0xcc,它是INT 3的操作码。将其替换为0x90,它是NOP的操作码。我们也可以将eip作为地址使用内存窗口。

竞价排名

假设我们正在编写PPC应用程序(例如Xbox 360),请在监视窗口中编写以下代码:

*(int *)iar,x

我们应该看到一个值0xfeNNNNNN,它是陷阱的操作码(最常见的是0x0fe00016 =无条件陷阱)。将其替换为0x60000000,这是NOP的操作码。