С незапамятных времен в Visual Studio существовала возможность написания визуализаторов для своих C++ типов, что позволяет изменить способ отображения типов в окнах отображающих содержимое переменных в отладчике (такие как auto, watch, locals и всплывающие подсказки для переменных). В Visual Studio 2012 появилась возможность в расширениях к Visual Studio распространять визуализаторы в новом формате natvis.
Были конвертированы старые визуализаторы для Boost'а и мои старые для TinyXML, а также добавил новые визуализаторы для Boost, wxWidgets и TinyXML2. Получилось в итоге расширение к Visual Studio 2012 — C++ Debugger Visualizers
Список поддерживаемых типов:
- Boost library
- boost::shared_ptr, boost::weak_ptr, boost::intrusive_ptr, boost::shared_array, boost::scoped_ptr, boost::scoped_array
- boost::ptr_array, boost::ptr_vector, boost::ptr_list, boost::ptr_deque, boost::ptr_map, boost::ptr_set, boost::ptr_multimap, boost::ptr_multiset
- boost::array, boost::dynamic_bitset, boost::circular_buffer
- boost::unordered_map, boost::unordered_set, boost::unordered_multimap, boost::unordered_multiset
- boost::container::basic_string, boost::container::deque, boost::container::vector
- boost::optional, boost::any, boost::variant
- boost::filesystem::path, boost::filesystem::directory_entry, boost::filesystem::file_status
- boost::posix_time::ptime, boost::posix_time::time_duration
- boost::regex
- boost::interprocess::offset_ptr
- boost::tribool
- boost::unique_lock
- boost::uuids::uuid
- wxWidgets library: wxPoint, wxSize, wxRect, wxDateTime, wxLongLong, wxString, wxArrayString, wxDir, wxFileName
- TinyXML library: TiXmlNode, TiXmlElement, TiXmlAttribute
- TinyXML2 library: XMLNode, XMLElement, XMLAttribute
- HRESULT for DirectX
Ссылки по теме:
- Debugger Type Visualizers for C++ in Visual Studio 2012
- Writing debugger type visualizers for C++ using .natvis files
- Writing graphical debugger visualizers for C++
Автор: KindDragon