Подтвердить что ты не робот

Есть ли простой способ сделать `boost:: ptr_vector` более дружественным отладчик в Visual Studio?

Я рассматриваю возможность использования boost::ptr_container в результате ответов этого вопроса. Моя самая большая проблема с библиотекой заключается в том, что я не могу просмотреть содержимое коллекции в отладчике, потому что отладчик MSVC не распознает его, и поэтому я не вижу содержимого контейнеров. (Все данные сохраняются как void * внутренне)

Я слышал, что у MSVC есть функция, называемая "визуализаторы отладчика", которая позволила бы пользователю сделать отладчик умнее об этих вещах, но я никогда не писал ничего подобного, и я не очень понимаю такие вещи.

Например, сравните поведение boost::shared_ptr с собственностью MSVC std::tr1::shared_ptr. В отладчике (т.е. В окне "Часы" ) ускоряемая версия отображается как большой беспорядок внутренних переменных, используемых для реализации общего указателя, но версия MSVC отображается как простой указатель на объект (и встроенные shared_ptr скрыты).

Как я могу начать использовать или реализовать такую ​​вещь?

4b9b3361

Ответ 1

Смотрите эту ссылку, которая предоставляет каждый визуализатор отладчика (через autoexp.dat), который может вам понадобиться:

Все визуализаторы доступны в svn. В настоящее время мы поддерживаем следующие Типы усиления:

  • boost:: array, ptr_array, ptr_deque, ptr_list, ptr_map, ptr_multimap, ptr_set, ptr_multiset, ptr_vector
  • повышение:: межпроцессного:: offset_ptr
  • подталкивание:: опциональный
  • подталкивание:: multi_index_container
  • повышение:: shared_ptr
  • повышение:: posix_time:: PTIME,
  • boost:: posix_time:: time_duration (доступны два варианта)
  • подталкивание:: регулярное выражение
  • подталкивание:: вариант

Ответ 3

Вы можете использовать это расширение для Visual Studio 2012+, отметьте эту ссылку. Они основаны на визуализаторах из boost svn для Visual Studio 2008/2010

Расширение поддерживает следующие типы Boost:

  • 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:: circle_buffer boost:: unordered_map, boost:: unordered_set, boost:: unordered_multimap, boost:: unordered_multiset
  • boost:: intrusive:: list, boost:: intrusive:: slist
  • 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
  • подталкивание:: регулярное выражение
  • повышение:: межпроцессного:: offset_ptr
  • подталкивание:: tribool
  • подталкивание:: unique_lock
  • повышение:: UUID,:: UUID

Ответ 4

Визуализаторы отладчика доступны только для управляемого кода, в соответствии с http://msdn.microsoft.com/en-us/library/zayyhzts.aspx, который предоставляет дополнительную информацию о них.