Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Обзор
Собственные объекты отладчика представляют различные конструкции и поведение среды отладчика. Ниже приведены примеры объектов отладчика.
- Сессия
- Потоки / поток
- Процессы / Процесс
- Кадры стека и кадр стека
- Локальные переменные
- Модули / модуль
- Полезность
- Государство
- Настройки
Для взаимодействия с объектами отладчика можно использовать команду dx и LINQ. Дополнительные сведения см. в разделе DX (Выражение объектной модели отладчика) и использование LINQ с объектами отладчика.
Вы также можете работать с объектами отладчика с помощью JavaScript. Дополнительные сведения об этом см. в расширениях JavaScript в машинном отладчике.
В этом разделе описывается, как создавать пользовательские визуализаторы NatVis для отображения объектов отладчика.
Ресурсы разработки NatVis
Дополнительные сведения о работе с NatVis см. в этих ресурсах.
Создание пользовательских представлений собственных объектов
Пример пользовательского объекта NatVis
Создайте простое приложение C++ с экземпляром класса CDog.
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
Запустите программу и войдите в основную функцию. Выполните шаг, чтобы переменная 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 (выражение объектной модели отладчика)