在调试模式下运行应用程序时,Visual Studio 输出窗口会显示如下消息:
在 application.exe 中的 0x00007FFB6CA74F69 处引发异常:Microsoft C++ 异常:内存位置 0x0000006C588FEFE0 处的 std::runtime_error。
程序继续运行。如何找到此异常发生的位置?
在调试模式下运行应用程序时,Visual Studio 输出窗口会显示如下消息:
在 application.exe 中的 0x00007FFB6CA74F69 处引发异常:Microsoft C++ 异常:内存位置 0x0000006C588FEFE0 处的 std::runtime_error。
程序继续运行。如何找到此异常发生的位置?
该程序继续运行,因为:
try/catch表示开发者已经解决了这个问题;尽管存在异常处理程序,但其发生的情况不一定是程序的正确行为。如果程序完全没有出现异常,它会变得更好。在复杂的程序中,相应异常发生的位置和原因并不总是很明显。要查找异常的位置,只需执行以下任一操作:
对已处理的异常启用停止。
这是通过菜单 Debug → Windows → Exception Settings 完成的:
您需要在所需类型的异常上启用停止(或启用一切以免出错):
在消息中指定的地址(内存位置
0x0000006C588FEFE0)添加数据断点这是通过菜单 Debug → New Breakpoint → Data Breakpoint... 完成的:
该菜单仅在程序暂停时可用。
程序继续运行后,会在出现异常时停止。在排除设置的情况下,这会更清楚,因为。代码将直接停在所需的
throw. 在数据断点的情况下,可能需要遍历堆栈以找到根本原因。