问题标签 [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 投票
3 回答
4186 浏览

c++ - Visual Studio 和 Natvis 不工作

我正在使用 VS Ultimate 2012 更新 5:

  • 微软视觉工作室终极版 2012
  • 版本 11.0.61219.00 更新 5
  • 微软 .NET 框架
  • 版本 4.5.50938

...并尝试使用/安装 natvis 来获取用户定义的调试器变量 vizualisations。

我做了 MSDN 或 StackOverflow 中提供的所有提示(例如在注册表中创建 EnableNatvisDiagnostics,或在https://msdn.microsoft.com/fr-fr/library/jj620914%28v=vs.110%29.aspx中创建建议)

没有任何效果。

任何想法 ?问候。阿兰又名BDW

0 投票
1 回答
3574 浏览

c++ - Qt5.natvis 在 VS 2015 更新 2 中不起作用

我正在尝试在 VS2015 Update 2 中使用 qt5.natvis 文件,但我仍然只看到 Qt 结构的指针地址。我把文件放在里面

这是我正在使用的代码:

有谁知道如何解决这一问题?

0 投票
1 回答
940 浏览

c++ - Visual Studio 2015 Natvis 如何显示函数静态变量?

我正在使用 Microsoft Visual Studio 2015 中的 .natvis 文件编写调试器可视化工具。如果可能的话,我想在我的课堂上获得一条信息。我想知道获取该变量的语法是什么。

这是 C++ 代码的简化版本:

在调试器中,当我将鼠标悬停在 MyClass 的实例上时,我想查看向量的大小,但我不知道如何引用它(或者是否可能)。这是可视化器类型,<what goes here?>在我遇到问题的地方:

实际问题要复杂得多,涉及到奇怪地重复出现的模板模式来创建更好的枚举对象,所以请不要评论这个有点做作的场景的无用性。

0 投票
1 回答
256 浏览

visual-studio-2012 - 如何设置 natvis 文件?

我正在尝试使用 Visual Studio 2012 的 .natvis 文件在 Watch 窗口中显示自定义类,但无法显示。

如果我有这个结构

我想显示 IWantToSeeThis 类的对象。我需要使用什么语法?

我试过这些:

但他们都没有看到导致显示结构。

我已尝试通过创建注册表项来启用诊断,如下所述:

https://code.msdn.microsoft.com/Writing-type-visualizers-2eae77a2

但是当我重新启动开发工作室时,输出窗口中没有显示任何诊断信息。

0 投票
1 回答
580 浏览

natvis - 是否可以 NATVIS 递归元组(可变参数模板)?

我从这里实现了元组:https ://voidnish.wordpress.com/2013/07/13/tuple-implementation-via-variadic-templates/

是否可以使用 NATVIS 将其可视化?我做到了

如何获得多个类型的 _Myfirst 值,以获取

ETC?

0 投票
1 回答
1559 浏览

c++ - 将 natvis 文件中 char* 的显示限制为特定长度

我有一个自定义数据结构,其中包含一个char*具有两个相关长度的缓冲区:最大长度和实际长度:

在 Visual Studio (2015) 调试器可视化器中,我只想显示缓冲区的第一个length元素,data而不是(通常未初始化的)剩余元素。

我的自定义.natvis文件中有以下规则用于显示我的自定义数据结构:

是否可以仅显示data为从to的“ su”编码字符串?data[0]data[length-1]

0 投票
3 回答
5004 浏览

visual-studio-2015 - 在 Visual Studio 2015 调试器中查看 Qt5.6 QStrings

似乎在 Visual Studio 2015 调试器中可视化 Qt5.6 QStrings 不适用于标准的 QString 可视化方式(向 Visual Studio 2015\Visualizers 添加 natvis),就像在 Visual Studio 2013 及之前所做的那样。这个对吗?有没有人设法在 VS 2015 中添加 QString 可视化?

0 投票
2 回答
1205 浏览

visual-studio-debugging - 访问 Visual Studio ImageWatch 插件的 .natvis 文件中的矢量基础数据

问题

问题类似,我正在尝试将ImageWatch插件用于我自己定义的类型MyImageClass。ImageWatch 是一个 Visual Studio 插件,允许您在调试代码时以图形表示形式查看图像。您可以编写 .natvis 文件来添加对自定义类的支持。

ImageWatch 插件需要char*图像数据的类型,但是我将数据存储在std::vector<char>. 我的 .natvis 文件非常简单,(您可以跳过它,只是为了完整性)

但是我正在努力解决以下问题<Item Name="[data]">image_data</Item>。图像数据分配不起作用,我无法在查看器中看到图像。相反,我收到“无效”消息。显然,这是因为image_datais astd::vector<char>而不是char*

我试过的

我在<Item Name="[data]">image_data</Item>标签内尝试了许多不同的东西来访问底层char*数据指针的向量,但没有一个工作:

  • image_data
  • image_data.data()显然,在 .natvis 文件中不能调用任何函数,Natvis 输出:错误:在此上下文中不支持副作用。
  • image_data._Myfirst(类似于 此处的 “ArrayItems 扩展”部分)Natvis 输出:错误:指向绑定函数的指针只能用于调用该函数

什么有效,但不是理想的解决方案

作为一种解决方法并查看我的数据是否正确,我已将 a 添加char*到结构中,然后将其分配给基础数据的向量。

接着

.natvis 文件相应更改

这行得通,我可以在 ImageWatch 中看到图像。但是,我不想引入一个额外的变量,只是为了 VS 调试器的目的。非常感谢任何帮助。

0 投票
0 回答
292 浏览

qt - Visual Studio 2015 Natvis 认为 QString 是枚举而不是类型

在 Visual Studio 2015 更新 3 中,我正在使用添加到我的解决方案文件中的 Qt5.natvis(来自旧的 VS 插件)的自定义版本。在为 QFlags 添加块之后的某个时间,QString 现在被用作枚举。

纳特维斯告诉我Natvis: C:\projects\core\trunk\Qt5.natvis(703,20): Error: constant "QString" is not a type name。当我QString在调试器监视窗口中键入时,我看到的不是表示类的图标,而是QString(10)值列和QMetaType::Type类型列。

看起来它可能会锁定为我的构建而#defined out 的枚举的替代定义,但是详细日志记录并没有告诉我它是如何查找或解析类型的标头的(尽管我经常必须明确指定模块,尤其是对于私有类。)

有没有人遇到过这个问题,或者知道如何更深入地研究 Natvis 以找出为什么它突然认为 QString 是一种类型?

0 投票
0 回答
390 浏览

visual-studio-2015 - Natvis 错误:如果没有运行时类型信息,则无法完成此 dynamic_cast,该信息已禁用

我在 .natvis 文件中有一个动态转换,但是当查看包含该转换的对象时,我收到错误消息:

Natvis Error: this dynamic_cast cannot be done without runtime type information, which is disabled

我已经完成了解决方案中的每个项目并将其打开。在执行此操作之前,还有很多dynamic_cast调用在代码中按预期工作,所以我不知道natvis抱怨这个是怎么回事。

有谁知道在 natvis 中是否允许进行 dynamic_casts?似乎无法找到任何一种方式或其他方式。