问题标签 [natvis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1524 浏览

visual-studio - Visual Studio .natvis 文件,类可视化数组

我的类基本上如下所示,我想在 Visual Debugger 中使其更具可读性:

这是向量的 natvis 文件的样子:

哪个工作正常。但是,对于矩阵类,我无法让任何工作。

尝试1:

尝试2:

知道我在做什么错吗?

谢谢!克里斯托夫

0 投票
2 回答
849 浏览

jsoncpp - 为 JsonCpp 寻找 Visual Studio 可视化工具(natvis)

我正在寻找 JsonCpp 的natvis文件,但找不到任何文件。

有人知道这样的文件吗?

0 投票
1 回答
639 浏览

debugging - 是否有任何用于在 Visual Studio 2013 中调试 Qt 4.8 项目的非官方可视化工具?

在 Visual Studio 2013 中调试对 Qt 4.8 类型的支持所需的文件在哪里?我听说过 *.natvis 文件,但我只找到了适用于 Visual Studio 2013 的 Qt5 *.natvis 文件或适用于 Visual Studio 2012 的 Qt4 *.natvis。它们对我不起作用。Visual Studio 2012 *.natvis 和 Visual Studio 2013 *.natvis 不兼容吗?

0 投票
0 回答
932 浏览

c - Visual Studio natvis 和不完整类型

我正在为一个项目编写一个 natvis 文件,其中一些结构是“私有”定义的,也就是说在 .c 代码文件而不是标题中。

当我调试定义结构的模块时,调试器会拾取它们,但是在处理其他模块中指向这些结构的指针时,我会丢失所有内部细节并{...}改为查看。我可以通过专门将对象转换为结构的模块限定名称来解决这个问题,例如(MyModule.dll!MyStruct*)MyPointer,这对于一般开发工作来说是可以的。但是在写natvis文件的时候就变得很痛苦了。

我可以创建一个ExpandedItem元素来显示正确投射的对象。但我真正想做的是有多个Item元素来挑选关键变量,如果我这样做了,我就会被“原始视图”困住,只给我{...}. 尝试同时做这两件事会导致递归。this在 natvis 文件中添加很多内容也非常难看。

我可以提示调试器自己识别完整的类型定义吗?

0 投票
1 回答
221 浏览

visual-studio-2013 - 在使用外部调试器时在 VS2013 中使用 NatVis 文件

在 Visual Studio 2013 中使用外部调试器插件(例如 VisualGDB)而不是内置调试器调试程序时,不会加载和使用 .natvis 文件。

现在是否有可能将 NatVis 与内置调试器以外的任何其他调试器一起使用,如果可以,如何启用它?

0 投票
2 回答
1556 浏览

visual-studio-2015 - Natvis 浮点格式

昨天我发现了MSVC 的“Natvis”工具,它允许您调整调试器以智能的方式呈现您的类型。我很快开始美化我的数学库。

这是我的 3*3 矩阵类的外观(未初始化的数据):

矩阵 3x3

华丽,对吧?我的下午没有遗憾。

但是,现在我们遇到一个稍微复杂一点的情况:

矩阵 4x4

如您所见,数字不对齐。我已经找到了一种 讨厌的方法来让负数与正数对齐,但是我的方法无法解决这个问题(这是我的基本大纲):

正在发生的事情是打印的位数因数字而异

因此我的问题是:我可以将 Natvis 配置为打印明确定义的位数以进行调试吗?或者,也许您有一个聪明的解决方法?


PS:如果我能正常工作,我会很乐意上传生成“.natvis”文件的 Python 脚本供大家使用,以供您自己的类型使用。

0 投票
1 回答
1769 浏览

visual-studio - VS2015 Visualiser, (*.natvis) DisplayString 调用函数显示值

我有一个复杂的类 (MyClass),它有一个名为ToString()的函数,该函数返回字符串的字符串表示形式。

我希望视觉工作室可视化器使用该函数来显示变量

这是我的可视化器,

如果我使用

返回函数的地址,能不能显示函数的结果?

如果不是,那么显示类的字符串表示的最佳方式是什么?

0 投票
1 回答
1098 浏览

c++ - Visual Studio .natvis 文件 - 矩阵

我试图在 Visual Studio 2013 调试器中显示一个矩阵类。类的相关部分是这样的:

我试图将其可视化为一个多维数组,但是当它们不作为数组存储时,我无法弄清楚如何指定维度的大小。这就是我正在尝试的:

但是似乎没有任何方法可以将维度作为文字或不同的变量,仅作为要索引的数组。有谁知道是否有办法做到这一点?

0 投票
1 回答
978 浏览

visual-c++ - 用于 c++ 联合/结构的 Natvis 可视化工具

我正在尝试使用 msvc natvis 可视化器实现个人可视化器。问题是我不知道如何在工会方面做到这一点。value一个包含两个结构 (string1和) 并集的结构 ( ) 的简单示例string2

我可以在 natvis 中使用以下代码为 string1 和 string2 创建两种类型:

但是当我有一个“值”变量(联合)时,如何自动预览这些类型。我坚持这一点:(假设变量类型等于 1 表示 string1,2 表示 string2 )。我已经做好了 :

所以我希望根据类型值,调试将显示正确的可视化工具。你能解释一下如何处理与 natvis 的联合吗?或者有什么例子吗?(官方的 msvc 文档不考虑联合。)很明显,这个例子没有任何意义,但这只是为了理解,因为我有一个更复杂的联合。

0 投票
1 回答
1064 浏览

c++ - Natvis TreeItems 定义在地图上不起作用

我在使用 Visual Studio 2015 的 natvis 扩展时遇到问题。在我的努力中,我需要访问地图,但TreeItemsnatvis 的节点似乎对我不起作用。我实际上正在使用示例代码:

但是我在 map<int,int> 上得到了这个错误:

我正在调试模式下构建,我仔细检查了优化被禁用(\Od)

也许 msvc2015 的 natvis 定义已更改,但我找不到任何东西。也许示例代码不应该工作,但我发现很难从一个不工作的例子开始。