gpt4 book ai didi

c++ - Visual Studio - 如何在显示消息框后捕获调试(中断)

转载 作者:行者123 更新时间:2023-11-30 02:23:07 25 4
gpt4 key购买 nike

我遇到过这样的情况。在我的代码中,有无数这样的代码块。

try
{
DoSomething();
}
catch( Ogre::Exception& e )//Yes, I'm using Ogre, but you get the idea :)
{
MessageBoxA( NULL, e.getFullDescription().c_str(), "An exception has occured!",
MB_OK | MB_ICONERROR | MB_TASKMODAL );
}

我不想在每个 catch block 都放置断点。所以每次抛出异常时,都会出现一个消息框——我单击“确定”并关闭程序。

我想要的是在单击消息框上的“确定”之后,Visual Studio 在消息框线程中捕获调试,我可以在源代码中看到下面发生了什么。

注意:我不知道'catch debug'这个词是否合适,当我说'catch debug'时,我的意思是:激活调试的'Step into' (F11)/'Step over' (F10) 功能mode --> 出现源边缘的黄色箭头。也许正确的词是“休息”。

PS:在我的情况下,我可以使用 ' Exception settings '(对于 2015 年之前的 VS,检查 this post )以在抛出所有 C++ 异常时中断。然后当抛出任何 C++ 异常时,我的 VS 2015 将中断让我看看会发生什么。然而,我仍然想解决这个问题,也许有些情况不是异常而只是消息框——那么需要一种在消息框显示后中断的技巧。

最佳答案

您低估了异常设置 的力量。它允许您仔细筛选出要拦截的异常类型。打开 Exception Settings 窗口,取消选中“C++ Exceptions”复选框,选择“C++ Exceptions”项(因此整行都突出显示,这也会激活工具栏上的“+”按钮),按“+”按钮(或使用上下文菜单条目)将 Ogre::Exception 类型添加到异常列表中,选中 Ogre::Exception 复选框,这样只有它会被拦截。

关于c++ - Visual Studio - 如何在显示消息框后捕获调试(中断),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46519199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com