Визуализация Списков В Отладчике Visual Studio Или Новое Слово Из «Bugaid For Visual Studio»

Когда вам приходится просматривать элементы списка (массива) в отладчике Visual Studio, например, в окне QuickWatch, вы часто сталкиваетесь с неудобством просмотра сложного (или длинного) списка данных.

Трудно увидеть, например, значения полей всех элементов списка.

В этом посте показаны несколько «встроенных» способов решения этой проблемы и возможность расширения.

БагЭйд .

мало букв, но достаточно картинок.

Давайте посмотрим на простой пример.

  
  
   

public class DataItem { public string Name { get; private set; } public string Description { get; private set; } public DataItem(string name, string description) { Name = name; Description = description; } } public class DataItems { public List<DataItem> Items { get; private set; } public DataItems() { Items = new List<DataItem>(); } }

Теперь, просматривая данные в отладчике, мы видим примерно следующее:

Визуализация списков в отладчике Visual Studio или новое слово из «BugAid For Visual Studio»

Стандартный QuickWatch не позволяет нам видеть определенное поле (или отформатированные поля) для всех элементов списка одновременно .

Для решения этой проблемы многие разработчики знают простой способ реализации метода.

Нанизывать() :

public class DataItem { public string Name { get; private set; } public string Description { get; private set; } public DataItem(string name, string description) { Name = name; Description = description; } public override string ToString() { return String.Format("{0}: {1}", Name, Description); } }



Визуализация списков в отладчике Visual Studio или новое слово из «BugAid For Visual Studio»

или более «на основе атрибутов»:

[DebuggerDisplay("Name = {Name}, Desciption = {Description}")] public class DataItem { public string Name { get; private set; } public string Description { get; private set; } public DataItem(string name, string description) { Name = name; Description = description; } }



Визуализация списков в отладчике Visual Studio или новое слово из «BugAid For Visual Studio»

Следует отметить, что для более сложных задач существует атрибут Тип отладчикаПрокси , но это не предел :).

Эти два метода хороши, но у них есть тот недостаток, что все это нужно писать в программном коде и компилировать.

Но часто вам нужно просмотреть данные списка в разных форматах.

Остановка для этого отладчика, изменение кода или атрибута, перекомпиляция и запуск заново — очень трудоемкий метод. Как оказалось, есть расширение БагЭйд для Visual Studio (по крайней мере, начиная с VS2010), которая решает эту проблему, а заодно и некоторые другие.

После установки этого расширения появляется меню BugAid с парой опций и собственным окном «BugAid — QuickWatch».

Теперь вы можете использовать звездочку, чтобы выбрать поля, которые вы хотите просмотреть для всех элементов списка.



Визуализация списков в отладчике Visual Studio или новое слово из «BugAid For Visual Studio»

и вуаля

Визуализация списков в отладчике Visual Studio или новое слово из «BugAid For Visual Studio»

Но это еще не все.

На самом деле, это все только начало.

Но я хочу создать какой-то формат данных и показать что-то вроде этого.

В этом случае вы можете использовать " Добавить пользовательское выражение ", добавьте выражение для элемента списка: что-то вроде " [obj].

Имя.

Длина "

Визуализация списков в отладчике Visual Studio или новое слово из «BugAid For Visual Studio»

и «наслаждаться» пользовательским форматом данных без компиляции и «вклада»:

Визуализация списков в отладчике Visual Studio или новое слово из «BugAid For Visual Studio»

Как часто вы хотели бы, чтобы Google выполнял поиск некоторых данных в сложном списке? так что давай выгоним его в поле Поиск что мы хотим найти и получаем:

Визуализация списков в отладчике Visual Studio или новое слово из «BugAid For Visual Studio»



Визуализация списков в отладчике Visual Studio или новое слово из «BugAid For Visual Studio»



Визуализация списков в отладчике Visual Studio или новое слово из «BugAid For Visual Studio»

но сравните пару элементов списка друг с другом.

Еще можно сделать так: выбрать первый элемент через меню " Выберите левую сторону для сравнения ", а потом второй.

" По сравнению с.

" и посмотрите на разницу:

Визуализация списков в отладчике Visual Studio или новое слово из «BugAid For Visual Studio»

Ну тогда было бы неплохо отфильтровать данные:

Визуализация списков в отладчике Visual Studio или новое слово из «BugAid For Visual Studio»



Визуализация списков в отладчике Visual Studio или новое слово из «BugAid For Visual Studio»

Кроме того, вы можете сохранять элементы и сравнивать их с течением времени.

Расширение BugAid имеет еще несколько интересных функций (например, визуализировать сложные выражения в операторе if ).

поэтому я считаю, что это расширение заслуживает внимания разработчиков.

Несколько слов о недостатках, которые я обнаружил.

  • Это еще не релиз, а бета-версия, поэтому не всегда работает стабильно.

    Чем сложнее структуры данных, тем больше вероятность возникновения проблем.

  • Некоторые стандартные функции (например, атрибут Тип отладчикаПрокси ) не поддерживается расширением.

  • Расширение не бесплатное, но есть двухмесячная бесплатная пробная версия.

Кстати, сайт поддержки http://bugaidsoftware.userecho.com/ довольно удобен и учитывает геймификацию, что в данном случае скорее хорошо, чем нет. Спасибо, Игорь.

Теги: #.

NET #Visual Studio #visual studio 2012 #отладчик #визуализация #BugAid #BugAid #C++ #.

NET #Visual Studio #C++

Вместе с данным постом часто просматривают: