gpt4 book ai didi

c++ - 是否可以通过Visual Studio中未处理的异常继续调试?

转载 作者:行者123 更新时间:2023-12-02 10:28:14 26 4
gpt4 key购买 nike

还有许多其他问题提示,可以像这样通过“未处理的异常”弹出窗口继续调试:
Exception Unhandled popup
这是Visual Studio 2019的弹出窗口,但VS 2015具有类似的行为。在这两种情况下,对于我尝试过的所有Win32 / x64和Debug / Release组合,调试器都拒绝超过抛出未处理异常的地步-每次尝试继续操作时,都会再次弹出相同的弹出窗口。我想超越这一点,继续进入通过SetUnhandledExceptionFilter()设置的代码。那可能吗?
This strongly upvoted answer暗示可能是这样,通过工具->选项,然后是调试->常规下的关于展开堆栈的选项...但是对答案的评论表明,该选项可能已从VS2017中消失。我在VS 2015中找到了该选项,但是没有达到预期的效果。因此,尽管票数减少,但该问题的公认答案是否正确-设计无法继续调试过去未处理的异常?

最佳答案

是的-有可能。如果您反复出现该弹出窗口,并且异常设置使得调试器未拦截到该异常(并因此将其传递给应用程序自己的异常处理),则可能是您的“未处理”异常处理已经运行,或以您认为的形式不存在。仔细检查您在何处设置了断点,并确保这些断点很容易受到攻击。
还要注意,如果您有类似这样的东西来捕获SEH异常(例如整数除以零):

__try
{
// set up and run the application
}
__except( RecordUnhandledException( GetExceptionInfo() ) )
{
}
...然后调试器可以向您隐藏 RecordUnhandledException()。也就是说,如果您在(故意)引发异常的行上设置了一个断点,并尝试进入该断点,则调试器可以通过一步执行处理代码以使其不可见,从而直接退回到该点。您。但是,如果产生其他输出,则应该能够看到该输出。如果不是,可能需要在 RecordUnhandledException()中使用一个明确的断点来揭示它的存在并逐步执行其逻辑。

关于c++ - 是否可以通过Visual Studio中未处理的异常继续调试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63404967/

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