Natvis对Android调试的支持

希望你看到我们的 Visual Studio 2015中调试Android C++代码的支持 . 现在在我们的RC版本中,我们很高兴地宣布,我们已经添加了对 natvis文件来帮助可视化您的原生类型 .

null

使用我们以前的CTP版本的客户告诉我们,在调试时,让natvis支持诸如标准模板库(STL)容器类(例如vector、map、stack、queue等)之类的公共类将非常有帮助。为了了解natvis的实际情况,让我们看一个简单的例子,看看在有natvis和没有natvis的情况下检查向量是什么样子的。在这个示例中,我创建了一个Android原生活动项目,并添加了一个函数,该函数创建一个向量并向其中推送10个值。

clip_image001

首先让我们看看没有纳特维斯的经历。事实证明,仅仅在调试器中浏览对象实际上不可能找到向量中的计数和单个项。

clip_image003

现在我将用向量的natvis文件做同样的练习。当我第一次展开向量时,我看到了两个选项,“[Visualized View]”natvis将提供给我的视图,和“base”-表示我以前的非可视化视图的视图。您可以立即看到[Visualized View]的“Value”列显示向量中对象的数量(大小)。

clip_image005

展开[Visualized View]可以显示向量中存储的大小、容量和单个值。

clip_image007

如果您熟悉windowsnatvis的体验,您会注意到您必须显式地选择展开natvis视图,而不是在默认情况下应用它。这是因为gdb在计算表达式时非常慢,如果我们自动应用它,这将严重影响在断点处停止和步进的性能。

当然,您可以为任何需要更好可视化的类创建自己的natvis文件( 我建议阅读这篇关于如何编写可维护的本地可视化的博客文章 ). 您可以将这些条目添加到随Visual Studio一起安装的Microsoft.Android.natvis文件中(见下文)。但是,更简单和推荐的方法是创建您自己的natvis文件,并将其添加到您正在调试的项目的根目录中(这也允许您将其签入到项目的源代码管理中)。

clip_image008

在未来的版本中,我们将包括VisualStudio2015中常见容器的可视化,但是要快速开始使用RC 使用附件 包含以下实现的定义:

  • 标准::列表
  • 标准::向量
  • 标准::地图
  • 标准::集
  • std::数组
  • std::转发列表
  • std::队列
  • std::优先级队列
  • 标准::位集
  • 标准::VALARY
  • 标准::1::矢量
  • 标准::1::地图

使用它, 下载附加的Microsoft.Android.natvis文件 并替换安装到[Visual Studio 14 Root]Common7ideCommonExtensionsMicrosoftMDDebugger的副本。

除了natvis之外,自上次发布以来,我们一直致力于修复bug和提高调试性能。请让我们知道新的natvis(和整体Android调试)体验是如何为您工作的,并通过 在Visual Studio中发送微笑功能 ,或 在我们的MSDN论坛上 .

Microsoft.Android.natvis

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享