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 扩展中的本机调试器对象