概述
本机调试器对象表示调试器环境的各种构造和行为。 示例调试器对象包括以下内容。
- 会话
- 线程/线程
- 进程/进程
- 堆栈帧/堆栈帧
- 局部变量
- 模块/模块
- 效用
- 国家
- 设置
可以使用 dx 命令和 LINQ 与调试器对象交互。 有关详细信息,请参阅 dx(显示调试器对象模型表达式) 和 结合使用 LINQ 和调试器对象。
还可以使用 JavaScript 处理调试器对象。 有关该详细信息,请参阅 JavaScript 扩展中的本机调试器对象。
本主题介绍如何创建自定义 NatVis 可视化工具以显示调试器对象。
NatVis 开发资源
有关使用 NatVis 的一般信息,请参阅这些资源。
自定义 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]