NatVis 中的本机调试器对象

概述

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

  • 会话
  • 线程/线程
  • 流程/流程
  • 堆栈帧/堆栈帧
  • 局部变量
  • 模块/模块
  • 实用工具
  • 状态
  • 设置

可以使用 dx 命令和 LINQ 与调试器对象进行交互。 有关详细信息,请参阅 dx (Display Debugger 对象模型表达式) 将 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) \Visualizers

运行程序,并在 main 函数中中断。 执行一个步骤,以便初始化变量 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 扩展中的本机调试器对象