在Visual Studio调试器中更改显示变量的顺序

时间:2014-02-19 21:16:18

标签: c++ visual-studio visual-studio-2012

我遇到了Visual Studio在调试过程中如何显示变量的问题。我在VS2012上开发了两台计算机,并且安装了相同版本的开发库,它们以不同的方式显示类中变量的顺序。

似乎无关紧要,但我正在使用数学库(GLM),当我打破并检查变量时,它们显示的顺序是不同的:

enter image description here

类型是一个glm :: vec3,由3个浮点数x,y,z定义,但是该库被设计为与glsl语法紧密,因此它还包含变量的其他名称(rgb,stp) )它实际上只是参考(x = r = s,y = g = t,z = b = p)。在我的另一台机器上,预览显示x y和z值,这就是我想要的。

查看这些是这台机器的痛苦,因为我必须单击下拉列表来检查每个单独的变量,我正在使用的向量列表可以是100或1000的项目长。我也无法在即时窗口中打印它们并检查这种方式,因为它以相同的顺序打印。

我能改变什么?

编辑:

我需要更新autoexp.dat文件,但它似乎对我不起作用。我在VS2010中打开了一个我安装的示例文件,并修改了它的autoexp.dat,效果很好。

我注意到的一件事是我的VS2012安装在C:\ Program Files(x86)中,而不是C:\ Program Files(X86)\ Microsoft Visual Studio 11.0(我的2010安装在正确的位置),所以我的Common7文件夹是C:\ Program Files(x86)\ Common7

这是一个问题吗?

1 个答案:

答案 0 :(得分:3)

在VS2012及更高版本中,autoexp.dat已被本机类型可视化框架(natvis)取代。

这适用于扩展名为.natvis的xml文件,可以放在三个不同的位置:

  • %VSINSTALLDIR%\ Common7 \ Packages \ Debugger \ Visualizers(需要管理员访问权限)
  • %USERPROFILE%\ My Documents \ Visual Studio 2012 \ Visualizers \
  • VS扩展文件夹

您的.natvis文件应如下所示(将TheType替换为您想要显示的类的名称):

<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
    <Type Name="TheType">
        <DisplayString>x = {x} y = {y} z = {z}</DisplayString>
    </Type>
</AutoVisualizer>

在MSDN上: Create custom views of native objects in the debugger