我可以控制调试器窗口中浮点数和双变量显示的位数吗?

Jay*_*ton 9 c++ debugging visual-studio-2012 natvis

在Visual Studio 2012中,我正在寻找一种在Autos,Locals和Watch窗口中自定义浮点类型的默认显示的方法.我熟悉Native Visualizer(Natvis)实用程序,但没有看到任何调试器格式化工具来完成此任务.同样,我不知道有任何方法可以覆盖任何基元类型的默认显示(除了启用十六进制).

目标是创建显示字符串,其中针对与点,几何向量等对应的类型扩展了更少的数字,但在扩展类型时仍然显示所有精度.因此,例如,我可能有一个点类型显示的变量,(0.000, 1.234, 2.429)而不是m_x = 0.00000000, m_y = 1.234245213...在Autos窗口的中间列中.

我查看了此页面上的格式说明符,但没有看到控制浮点精度的方法.

Ben*_*Ben 12

虽然它们的文档似乎不支持,但我们使用以下定义来缩短数字(在VS 2015中):

  <Type Name="MyVec3d">
    <DisplayString>{vectorX,g}, {vectorY,g}, {vectorZ,g}</DisplayString>
  </Type>
Run Code Online (Sandbox Code Playgroud)


Jar*_*Par 4

不幸的是,实际上没有办法在 C++ 调试中进行这种细粒度的更改。[DebuggerDisplay]在托管语言中,在某些有限的场景中(当基元是对象的字段并用特殊属性注释时)是可能的。但对于 C++ 来说,这种类型的定制并不存在。