Учебник / Руководство по созданию Visualizer в autoexp.dat - PullRequest
15 голосов
/ 03 февраля 2011

У меня есть несколько типов данных C ++, для которых я хотел бы улучшить опыт отладки в моей команде. Поэтому я хочу создать пользовательский визуализатор в файле autoexp.dat. Раздел [AutoExpand] не кажется достаточным, поэтому я начал смотреть на [Visualizer]. Я нашел этот сайт с некоторыми пояснениями, но есть ли исчерпывающая справка / руководство / учебник? Например, я не понимаю разницу между $ c и $ e. Мне уже удалось отобразить некоторую основную информацию, но я чувствую, что есть еще много всего, что нужно знать ...

Знаете ли вы хороший ресурс?

Спасибо!

Ответы [ 2 ]

6 голосов
/ 08 июня 2011

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

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

0 голосов
/ 03 февраля 2011

Ниже приведен пример визуализатора для 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
        )
    )
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...