如何在 VS C++ 中查找发生异常的位置
How to find the location where exception occurred in VS C++
我收到此异常:
Microsoft C++ exception: std:out_of_range at memory location 0xBlahBlahBlah
如何在代码中找到此位置?
一种方法是为异常设置中的所有内容启用"抛出时中断"。它将有一个可以通过复选框打开的异常类型列表。我通常会把它们全部打开然后走。在此过程中,您可能会遇到一些已处理的异常,但您不应该错过问题之一。
您可以在以下位置找到它: Debug->Windows->Exception Settings
完成后,我建议将其恢复为默认设置(有一个图形按钮(,这样您就不会在每次抛出已处理的异常时都中断。
以下是解决问题的步骤:
- 查找在反汇编窗口中的"异常:内存位置 0xXXXXX 的 EEEE"位置中显示的内存位置。
- 在该位置设置断点并运行程序,直到断点。
- 检查调用堆栈以查找实际引发异常的函数。
由于某种原因,当引发 std::out_of_range 异常时,即使引发 std::exception 时调试器异常设置设置为中断,调试器也不会中断。
我的方法是在某处设置一个断点,然后按住 F10 直到它引发异常。现在您知道错误在哪里了。
此错误是运行时逻辑错误,在许多情况下可能会发生,要找到它,您应该跟踪代码并查找一些逻辑错误。
例如int x[4];
x[5] = 1;
在这种情况下,您使用的是不允许使用的内存单元。
相关文章:
- (此函数用于计算 SMA).在 FA.exe 中0x00509159引发异常: 0xC0000005:访问冲突读取位置0
- 内存位置出现Microsoft C++异常:std::out_of_range
- 0x0F50DF58:0xC0000005:访问冲突读取位置0x0047CA04时未处理的异常
- 错误 在测试.exe 0x76C9FD62时出现未经处理的异常:Microsoft C++异常:内存位置0x006FF8
- 如何找出浮点异常的位置
- C 获取std :: out_of_range异常的位置
- cv:内存位置的异常 - 运行 openCV 代码 Visual Studio 2013 & Visual Studio 2017 - Windows 7
- Microsoft C++异常runtime_error在内存位置(代码 0x75A818A2)
- 在 "<name>.exe" 中0x00007FFF168E1657 (vcruntime140d.dll) 引发异常:0xC0000005:访问冲突写入位置0x0000000000000
- 未经治疗的异常访问违规写作位置
- cv::内存位置出现异常错误
- 如何在 VS C++ 中查找发生异常的位置
- 在cv::Mat对象上循环时,内存位置出现cv::异常
- 如何修复<程序名称>中的"<内存位置>未处理的异常。Visual Studio 2017 中的访问冲突写入位置<内存位置>"
- OpenGL:glDrawArrays()引发异常(nvoglv32.dll)读取位置0x00000000时发生访问冲突
- ***读取位置*******的访问冲突处出现未处理的异常
- 在2.exe中的0x00DE181818的未经手法异常:0xc0000005:访问违规写作位置0xcd7cbe10
- NVIDIA 在 <work.exe>0xC0000005 中0x002a2da2未处理的异常:访问违规读取位置0x00000000
- 未处理的异常..访问冲突写入位置
- 在 DirectXGame.exe 中0x00B84CD6出现未经处理的异常:0xC0000005:访问冲突读取位置0x