在c ++中没有断点的中断过程

时间:2011-03-17 07:56:49

标签: visual-studio-2008 debugging visual-c++ mfc

在Visual Studio 2008 MFC应用程序中有一种方法可以在没有断点的情况下停止调试,当我按下按钮时?问题是,这是一个非常大的共享项目,所以我的代码被另一个“模块”调用,但我不知道我的哪个函数被调用,所以我不知道在哪里放置一个断点。如果调用我的任何函数,我的目标是打破这个过程。

3 个答案:

答案 0 :(得分:3)

您可以使用DebugBreak()功能。

答案 1 :(得分:2)

您可以编写一个Visual Studio宏,在源代码的每一行放置一个断点。你可以让它更聪明,只在每个函数开始时放置断点,但这需要一些解析。将该宏绑定到一个键。运行MFC应用程序,当你想开始打破你自己的代码时,切换到Visual Studio,按键和presto,你将打破第一次使用你的代码。

另一种选择是创建一个C ++宏来检查是否已经设置了全局布尔值,并在它有时执行asm {int 3}。在代码的每个(高级)函数的开头使用此宏。添加在MFC应用程序中按下某个按钮时设置全局布尔值的代码。这只能在一个32位的可执行文件中运行,你需要64位可执行文件中的一些内在函数,我不知道它是什么。

希望这有帮助。

干杯,

Sebastiaan

答案 2 :(得分:1)

有一个“暂停”按钮可以打破执行......或者你可以在所有可能的嫌疑人身上放置一个断点。你不知道你的哪个函数被调用 - 让它们全部中断。那么你将实现你的目标。

  

如果调用我的任何函数,我的目标是打破这个过程。