2

我的 VS 调试器有问题,如果发生调试断言失败,它不会再闯入我的代码。它只是停止执行/调试,即使我按下Retry. 例如,如果我的向量下标超出范围,就会发生这种情况:

std::vector<int> a(4);
a[4]=0;

我开始了一个新项目(只是窗口上的一个按钮,执行上述操作),它正确地坏了,所以我猜这是一个设置问题。到目前为止,我没有找到任何有用的设置。
我最近在我的项目文件夹中移动了一些文件,所以这可能引发了这个问题。

有什么建议么?如果这个问题恰好在这个论坛的其他地方得到回答,我很抱歉,我没有找到它。

谢谢!

4

2 回答 2

0

operator[]函数不进行任何边界检查,因此您有未定义的行为,可能会或可能不会导致崩溃。

但是,当索引超出范围时,该at函数将引发异常。

于 2013-05-30T10:22:04.287 回答
0

试试这些

1) 确保在配置设置中检查了数组边界。在某些版本的 Visual Studio 中,即使在发布版本中也默认开启!纯粹的开发人员可能已经为所有配置关闭了此功能,并且您已经继承了这些设置。

2)检查您的项目配置设置。您正在运行调试版本吗?

3)重建一切。即全部重建。

4)如果仍然没有修复,请自行删除所有中间文件并重建全部。

5) 用该行硬编码一个断点__asm int 3;

于 2013-05-30T10:23:04.040 回答