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