在Visual Studio中调试C ++代码时,鼠标悬停在变量上会显示其值。如果变量是结构,则其成员显示在表中。如果变量是具有继承的类,则继承的成员将在树视图中进行分组,并且它变得一团糟。有时(例如,使用Eigen库中的矩阵对象),在看到任何值之前,需要打开几个树节点。
然而,鼠标悬停在STL容器上会产生一个很好的清晰视图,其中包含元素数量(甚至不是成员变量)及其在列表中的值。
如果我想编写自己的容器类,有没有办法以某种方式装饰其成员(在源代码中),以便调试器以更容易阅读的方式显示,或者这个功能是否在VS IDE二进制文件中进行了硬编码?
我找到了this article,但这需要修改一些IDE文件,这不是我想要的。我希望任何运行我的代码的人都能够按预期看到值预览,而无需修改他们的VS文件。
答案 0 :(得分:1)
从VS2012开始,通过* .natvis文件引入了一种创建原生可视化工具的新方法。这些文件是XML,可以添加到My Documents目录中的Visual Studio项目文件夹中。
本文介绍如何解决将深度嵌套清理为更清晰格式的问题:https://msdn.microsoft.com/en-us/library/jj620914.aspx
在VS2012之前,您必须修改Visual Studio安装目录中的神秘autoexp.dat文件,或者编写自定义AddIn。