.NET позволяет создавать DebuggerVisualizer для типов данных в Visual Studio, мне нужно добавить следующий атрибут для типов, которые я хочу визуализировать:
[System.Diagnostics.DebuggerVisualizer("VisualizerTypeName", "ObjectSourceTypeName")]
Затем он добавит маленький символ увеличительного стекла рядом с выражениями этого типа в различных окнах отладки, и когда вы нажмете на увеличительное стекло, появится всплывающее окно указанного визуализатора.
Я пытался найти, как сделать то же самое для типов C ++. Мне известны autoexp.dat и пример проекта VC2010Samples \ C ++ \ Debugging \ EEaddin, но кажется, что они применимы только к текстовому выводу в окне отладчика, а не к пересылке данных для визуализатора отладки.
Я предполагаю, что это будет как-то связано с autoexp.dat, но я не могу найти никакой информации о маркировке типа для визуализации. Как заставить всплывающее увеличительное стекло для произвольных типов C ++ так же, как для типов char *?
В Visual Studio 2012 и более поздних версиях появился новый формат для визуализации отладки .natvis:
https://msdn.microsoft.com/en-us/library/jj620914(v=vs.110).aspx#BKMK_UIVisualizer
В Visual Studio 2010 и более ранних версиях лучшая информация, которую я могу найти, — это то, что «stringview» является единственным типом визуализации, поддерживаемым autoexp.dat. Вы можете указать формат строки для визуализации типа в виде строки, используя встроенный визуализатор строк, но без пользовательских визуализаторов:
Других решений пока нет …