有一个简单的代码:
#include <iostream>
#include <vector>
int main()
{
std::vector<int> v {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
getchar();
return 0;
}
c 行有getchar();一个断点。我在两个 IDE 中运行此代码:Visual Studio 2019 和 CLion。停在一点的时候,我看的是局部变量的值,也就是向量v。这是我在 CLion 中看到的(从我的角度来看,它是一个“健康人的调试器”):
这就是 Visual Studio 2019 向我展示的内容:
我知道 VS 的输出通过容器实现的细节来证明是合理的,并且很可能“在引擎盖下”向量看起来完全一样。但是,尽管如此,CLion 出于某种原因“理解”程序员在调试时很可能希望看到“一点”而不是这个。此外,在使用 Visual Studio 2008 时,我不止一次地用调试器查看了类似的向量,就像在 CLion 中一样,容器元素以可读的形式显示(不幸的是,无法附上屏幕截图) .
问:自 2008 版以来 VS 调试器发生了什么变化,我如何让它显示有用的信息而不是容器的内部实现细节?


工作室里的一切都很好。甚至比clion还要好。您只是不需要触摸设置中的复选框。
一切都会像这样
以防万一,您需要转到 Tools->Options.. ,在那里 Debugging -> General 并取消选中“Show raw structure of objects in variables windows”。
PS 如果我是 CLion 开发者,我会特意勾选这个框。为了可靠性:)