Учебник/Руководство по созданию Visualizer в autoexp.dat
У меня есть некоторые типы данных С++, для которых я хотел бы улучшить опыт отладки в моей команде. Поэтому я хочу создать собственный визуализатор в файле autoexp.dat. Раздел [AutoExpand] кажется недостаточным, поэтому я начал смотреть на [Visualizer]. Я нашел этот веб-сайт с некоторыми пояснениями, но есть ли какая-либо всеобъемлющая справочная/учебная/учебная программа? Например, я не понимаю разницу между $c и $e. Мне уже удалось отобразить некоторую базовую информацию, но я чувствую, что там гораздо больше, чтобы знать...
Знаете ли вы хороший ресурс?
Спасибо!
Ответы
Ответ 1
Появляется, что это уже прокомментировано выше, но кто-то, кто подходит к этому вопросу, не обязательно будет читать комментарии, и поэтому может пропустить отличный учебник, доступный на сайте boost:
https://svn.boost.org/trac/boost/wiki/DebuggerVisualizers
Кроме
http://mariusbancila.ro/blog/2007/04/06/tweaking-autoexpdat-for-custom-types-in-vs2005/
http://www.idigitalhouse.com/Blog/?p=83
http://www.chromium.org/developers/how-tos/how-to-set-up-visual-studio-debugger-visualizers
http://www.virtualdub.org/blog/pivot/entry.php?id=172
Ответ 2
Ниже приведен пример визуализатора для boost:: tuple. Это должно быть довольно легко следовать:
boost::tuples::tuple<*>{
; Show as (11, 22, 33, ... })
preview (
#(
"("
, $e.head
, ", "
, $e.tail.head
, ", "
, $e.tail.tail.head
, ", "
, $e.tail.tail.tail.head
, ", "
, $e.tail.tail.tail.tail.head
, ", "
, $e.tail.tail.tail.tail.tail.head
, ", "
, $e.tail.tail.tail.tail.tail.tail.head
, ", "
, $e.tail.tail.tail.tail.tail.tail.tail.head
, ", "
, $e.tail.tail.tail.tail.tail.tail.tail.tail.head
, ", "
, $e.tail.tail.tail.tail.tail.tail.tail.tail.tail.head
, ")"
)
)
children (
#(
0: $e.head
, 1: $e.tail.head
, 2: $e.tail.tail.head
, 3: $e.tail.tail.tail.head
, 4: $e.tail.tail.tail.tail.head
, 5: $e.tail.tail.tail.tail.tail.head
, 6: $e.tail.tail.tail.tail.tail.tail.head
, 7: $e.tail.tail.tail.tail.tail.tail.tail.head
, 8: $e.tail.tail.tail.tail.tail.tail.tail.tail.head
, 9: $e.tail.tail.tail.tail.tail.tail.tail.tail.tail.head
)
)
}