我要做的是监视某些特定地址的内存值变化,例如将回调函数绑定到“onChange”事件。
现在我能想到的一个想法是使用内存写入断点。那么如何在 Visual C++ 中以编程方式操作断点呢?
我要做的是监视某些特定地址的内存值变化,例如将回调函数绑定到“onChange”事件。
现在我能想到的一个想法是使用内存写入断点。那么如何在 Visual C++ 中以编程方式操作断点呢?
如果需要中断调试器,使用DebugBreak函数,必要时下一个#ifdef _DEBUG
#endif
块
Microsoft 确实提供了可用于此目的的断点接口,请查看http://msdn.microsoft.com/en-us/library/vstudio/envdte.breakpoint.aspx和http://msdn.microsoft。 com/en-us/library/envdte80.breakpoint2(v=vs.80).aspx
您也可以在您的代码中放置:
__asm { int 3 }
如果您在 VS 调试器下运行,则会调用断点处理程序。
更新:实际上它与使用 MSVC 内在的 __debugbreak 相同(http://msdn.microsoft.com/en-us/library/f408b4et.aspx)
我在 hwbrk 项目上取得了巨大的成功。