c++ - 调试导致异常?

标签 c++ debugging exception visual-c++

我从我在 Visual Studio 2k3 中使用 C++ 编写的应用程序中获取了错误数据,因此我决定对其进行调试。然后我发现它抛出了一个异常,但我无法追踪到。

然后我放置了一些 try/catch block ,然后低看,当我不调试时没有异常。也就是说,我的代码如下所示:

std::vector<MyClass*> ListOfStuff;
.
.
.
try
{
.
.
.
   const MyClass * localPointer = ListOfStuff[i]; //This is where the exception occurs
.
.
}
 catch (...)
{
   int x = 0;  //place break here
}
因此,如果我逐行执行代码,我将得到一个异常并捕获机会。但是,如果我只是让它在 catch 中设置一个断点,则什么也不会发生。使用迭代器具有相同的行为。而且我可以成功地检查 vector 的大小,所以我知道我在范围内。
谁能告诉我这是怎么回事?如果重要的话,我正在使用一些标准的 Windows 库和 openGL。

最佳答案

你可以尝试放置一个

DebugBreak();

调用 catch 子句。如果应用程序在调试器中运行,它应该获得控制权。如果它没有在调试器中运行,您应该有机会附加“及时”调试器(如果安装了它,通常是 Visual Studio)。

关于c++ - 调试导致异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/214109/

相关文章:

python - Pycharm调试-使用 watch 保存变量

windows - 如何在 PowerShell 中捕获异常?

java - 用java制作一个包含数组和文件输入的表格

c++ - 在 C++ 中保证临时的生命周期?

c++ - 为什么我的信号处理程序只执行一次?

c++ - C++ 中对象的循环问题

python - 捕获我在计算中得到 NaN 的那一刻

c++ - 为什么在定义析构函数时隐式删除​​移动构造函数

debugging - 在 Emacs 中使用 Mono 软调试器

visual-studio-2008 - 调试命令(step over/into)导致未处理的异常