Учебник/Руководство по созданию 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
        )
    )
}