Make Visual Studio break on User (std::exception) Exceptions?
我的代码会引发未处理的异常,但Visual Studio中的调试器只会破坏系统引发的异常。
例如,在EDOCX1的返回值(0)以下不是零,应该首先抛出我的异常——实际上,如果我在第171行放置一个断点,它会被命中——但是调试器只在调用
我知道我必须明确地添加我自己的类型,或者在
如何使Visual Studio调试器在出现异常时自动中断?
调试程序在抛出时已中断,但您没有显示调用堆栈中实际引发异常的最顶层函数。
您所展示的是一个更深入堆栈的函数。这表明,当当前被调用的函数返回下一行要执行的是
右键单击调用堆栈,单击"显示外部代码",您将看到如下内容:
1 2 3 4 | KernelBase.dll!RaiseException(unsigned long dwExceptionCode, unsigned long dwExceptionFlags, unsigned long nNumberOfArguments, const unsigned long * lpArguments) Line 904 C vcruntime140d.dll!_CxxThrowException(void * pExceptionObject, const _s__ThrowInfo * pThrowInfo) Line 136 C++ ConsoleApplication5.exe!main() Line 6 C++ ConsoleApplication5.exe!invoke_main() Line 64 C++ |
注意,它是实际抛出异常的
是的,我可以同意,这不是很像C++,但是抛出异常是一种需要复杂代码的机制,所以它是这样发生的。