NatVis 中的本机调试器对象

概述

本机调试器对象表示调试器环境的各种构造和行为。 示例调试器对象包括以下内容。

  • 会话
  • 线程/线程
  • 进程/进程
  • 堆栈帧/堆栈帧
  • 局部变量
  • 模块/模块
  • 效用
  • 国家
  • 设置

可以使用 dx 命令和 LINQ 与调试器对象交互。 有关详细信息,请参阅 dx(显示调试器对象模型表达式)结合使用 LINQ 和调试器对象

还可以使用 JavaScript 处理调试器对象。 有关该详细信息,请参阅 JavaScript 扩展中的本机调试器对象

本主题介绍如何创建自定义 NatVis 可视化工具以显示调试器对象。

NatVis 开发资源

有关使用 NatVis 的一般信息,请参阅这些资源。

为本地对象创建自定义视图

.nvload

.nvlist

.nvunload

.nvunloadall

自定义 NatVis 对象示例

创建具有 CDog 类实例的简单C++应用程序。

class CDog
{
public:
   CDog(){m_age = 8; m_weight = 30;}
   long m_age;
   long m_weight;
};

int main()
{
   CDog MyDog;
   printf_s("%d, %d\n", MyDog.m_age, MyDog.m_weight);
   return 0;
}

创建一个名为 Dog.natvis 的文件,其中包含此 XML:

<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="https://schemas.microsoft.com/vstudio/debugger/natvis/2010">
   <Type Name="CDog">
      <DisplayString>{{Age = {m_age} years. Weight = {m_weight} pounds.}}</DisplayString>
   </Type>
</AutoVisualizer>

将 Dog.natvis 复制到安装目录中用于调试 Windows 工具的可视化工具文件夹中。 例如:

C:\Program Files\Debugging Tools for Windows (x64)\可视化工具

运行程序,并在主函数中中断。 执行一个步骤,以便初始化变量 MyDog 。 使用 ?? 显示MyDog,然后再使用 dx 显示。

0:000> ??MyDog
class CDog
   +0x000 m_age        : 0n8
   +0x004 m_weight     : 0n30
0:000> *
0:000> dx -r1 MyDog
.....
MyDog     : {Age = 8 years. Weight = 30 pounds.} [Type: CDog]

另请参阅

dx(显示调试器对象模型表达式)

将 LINQ 与调试器对象配合使用

JavaScript 扩展中的本机调试器对象