如何在Visual C++中以编程方式设置断点?

6

我的目标是监视一些特定地址的内存值变化,就像绑定一个回调函数到“onChange”事件。

目前我想到的一个想法是使用内存写入断点。那么如何在Visual C++中以编程方式操作断点呢?


你想在运行时设置断点吗?- 为什么不使用条件断点? - masoud
@MM。我想在我的代码中完成这个,而不是在调试器中。 - Mickey Shine
https://dev59.com/FXM_5IYBdhLWcg3wt1k0#1261763:这是一个使用Java编写的简单的HTTP服务器示例。它监听来自客户端的请求并返回响应。https://dev59.com/oVzUa4cB1Zd3GeqP7eOX#8008943:这个问题的答案取决于你想要什么类型的随机数。如果你需要伪随机数,那么使用java.util.Random类。如果你需要真正的随机数,那么你需要使用外部服务或硬件设备来获取真正的随机数。 - Evgeny Panasyuk
4个回答

6

如果需要进入调试器,请使用DebugBreak函数,在必要时使用#ifdef _DEBUG #endif块。


1
另外,_DEBUG 是无关紧要的。正确的做法是使用 IsDebuggerPresent - ZAB


1

你也可以在代码中加入:

__asm { int 3 }

如果你正在使用VS调试器运行程序,这将会调用断点处理程序。

更新: 实际上,这与使用MSVC内置函数__debugbreak相同(http://msdn.microsoft.com/en-us/library/f408b4et.aspx)。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接