Использование windbg из Visual Studio - PullRequest
5 голосов
/ 09 августа 2010

Можно ли использовать команды windbg, такие как !locks и .loadby sos mscorwks, из окна команд Visual Studio (в сеансе отладки)?Я заметил, что могу использовать, например, k для печати трассировки стека, поэтому мне было интересно, есть ли какой-нибудь способ получить доступ к другим командам.

Ответы [ 3 ]

8 голосов
/ 09 августа 2010

Да, вы можете сделать это.

  1. Присоедините Visual Studio 2008 к процессу отладки.
  2. Перерыв на некоторый код.
  3. Перейти к ближайшему окну
  4. тип !load sos
  5. Теперь вы можете использовать любую из команд windbg, например !EEHeap,!DumpHeap

Есть некоторые условия. Вам необходимо включить отладку неуправляемого кода в свойствах вашего проекта. Обычно в 64-битной версии студия не поддерживает это.

Веселитесь.

4 голосов
/ 24 июня 2013

Visual Studio 2012 имеет транспорт «Отладчик пользовательского режима Windows» в диалоговом окне «Присоединение к процессу».Это позволяет использовать команды windbg в ближайшем окне.

Источник: Использование WinDbg Engine в отладке пользовательского режима Visual Studio

2 голосов
/ 26 декабря 2014

Начиная с Windows Driver Development Kit (WDK) 8.0, отладчик Windows интегрирован в Visual Studio (см. Среды отладки ).Установка WDK поверх установки Visual Studio позволит разработчику выбрать несколько отладчиков из диалогового окна Присоединить к процессу или установить механизм отладки в настройках Отладчик проекта.Это было проверено для Visual Studio 2012 и 2013. То, как я читаю ссылку MSDN выше, также должно работать для любой другой IDE, поддерживаемой WDK 8.0 и выше.

Хотя WinDbg предлагает многомощные команды, есть и недостатки.Этот список не является исчерпывающим и содержит только те проблемы, с которыми я столкнулся:

  • Невозможно подключиться к более чем одному процессу одновременно.Хотя это, как правило, не проблема, это весьма прискорбно, если вам нужно отлаживать более одного процесса одновременно.Отладчик Visual Studio может одновременно подключаться к любому числу процессов.
  • WinDbg не будет использовать настройки символов из вашей среды IDE Visual Studio (протестировано в VS 2012 Update 4).Хотя вы можете настроить IDE, где искать символы отладки, WinDbg не будет соблюдать эти параметры.WinDbg будет использовать переменную среды _NT_SYMBOL_PATH и / или конфигурацию, установленную через .sympath.
  • Другой синтаксис для точек останова функции.Это небольшое раздражение, поскольку вы не можете использовать синтаксис Visual Studio для указания точек останова функции.Это также означает, что точки останова функций игнорируются, которые были установлены с использованием синтаксиса Visual Studio.Что еще более раздражает, тем не менее, вы получаете диалоговое окно с предупреждением для каждого при запуске отладчика.
  • Нет поддержки Точки отслеживания .Я широко использовал точки трассировки, чтобы незаметно вставить трассировку в отладчик.Если вы также используете точки трассировки, это может оказаться не просто досадой.
...