gpt4 book ai didi

c++ - Visual C++ 断言在返回位置中断

转载 作者:行者123 更新时间:2023-11-30 02:35:28 29 4
gpt4 key购买 nike

在 Debug模式下运行此代码时会发生一些非常方便的事情:

std::array<int, 2> test;
test[5] = 123;

当我点击断言消息框上的“重试”按钮时,Visual Studio 2015 将显示 test[5] = 123; 行。而且我不知道为什么它没有在运算符内部的断言位置中断。

有人对此有解释吗?有没有一种方法可以在我自己的代码中复制相同的行为?

编辑:

为了清楚起见,Visual Studio STL 在 Debug模式 (_ITERATOR_DEBUG_LEVEL) 下对 operator[] 进行边界检查,而我在 Debug模式下运行。这里的问题是为什么它在这个位置中断,而不是在实际触发断言的运算符内部中断。

另请注意,在 Visual Studio 2013 中,它在运算符内部中断,因此 2015 年和 2013 年之间的行为有所不同,情节变得更加复杂。

最佳答案

对于 Visual Studio 2015,记录了调试器确定哪些函数不是“我的代码”和自定义的过程:

You can specify modules, source files, and functions to treat as non-user code in call stacks by specifying them in *.natjmc files.

关于c++ - Visual C++ 断言在返回位置中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33571762/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com