Зачем использовать WinDbg против отладчика Visual Studio (VS)?



каковы основные причины использования WinDbg против отладчика Visual Studio?



и он обычно используется в качестве полной замены для отладчика Visual Studio или больше, когда возникает необходимость.

527   8  

8 ответов:

Если вам интересно, почему вы должны использовать windbg над Visual Studio, то вам нужно прочитать Расширенная Отладка Windows. Каждый раз, когда вам нужно отлаживать действительно уродливую проблему, windbg имеет лучшую технологию для этого, чем Visual Studio. Windbg имеет более мощный язык сценариев и позволяет писать библиотеки DLL для автоматизации сложных задач. Он будет устанавливать gflags.exe, что дает вам лучший контроль над кучей для отладки перезаписи памяти.

вы не на самом деле нужно запустить установку, вы можете просто скопировать файлы и будет готов к работе. Также он устанавливает adsplus.vb, так что вы можете взять мини-дампы запущенных процессов. Это также очень легко настроить для выполнения удаленной отладки. Нет ничего лучше, чем иметь возможность отлаживать проблему с вашего собственного стола вместо борьбы с 15-дюймовым монитором, который мерцает на тестовом ПК.

для ежедневного написания кода я использую Visual Studio, но как только вам нужно начать отладку проблем из других компьютеры или окажитесь в очень уродливой ситуации, windbg-это единственный способ пойти. Потратить некоторое время на изучение windbg-это отличная инвестиция. Кроме того, если вы посмотрите на аварийные дампы, есть два больших ресурса,http://www.dumpanalysis.org/blog и http://blogs.msdn.com/ntdebugging/default.aspx которые делают всю их отладку с помощью windbg.

вот некоторые дополнительные ссылки, чтобы помочь с использованием WinDbg, большинство из них специфичны для .NET.

вы не указываете, отлаживаете ли вы собственный или управляемый код. Это не влияет на ответ, WinDbg чрезвычайно полезен для обоих, но многие люди считают, что WinDbg как-то менее актуален при отладке приложений .NET. Не очень. В качестве бонуса вы можете узнать много нового о том, как работает платформа .NET, отладив свое приложение .NET в WinDbg с расширением SOS. Запустите (или прикрепите) свое приложение .NET в WinDbg и введите...

.loadby sos mscorwks

...чтобы быть уверенным, что вы загружаете правильный расширение для используемой версии среды CLR. Затем набрать...

!help

... чтобы узнать, какие команды доступны в расширении SOS.

Я слышал, что он пошутил, что Microsoft имеет только один инструмент разработчика, и это WinDbg. Все, что вам может понадобиться для отладки, находится там или в расширении. Конечно, подмножество этих вещей также доступно в VS с более дружественным пользовательским интерфейсом... : -)

Я использовал его, когда меня послали .DMP файлы с сервера NT4.0 - MSVC не будет загружать эти старые файлы формата.

ядра отладки смешивая плюс удаленного-пользователя-режим отладки.

AFAIK, visual studio еще невозможно выполнить удаленную отладку в режиме, который я описываю как"решение". Это чертовски хорошая причина использовать windbg.

:
  • настройка windbg через 1394. Ваше приложение работает на "цели". Windbg работает на "хосте".
  • запустите visual studio на хосте
  • пусть visual studio запустит ваше приложение на целевом объекте с помощью удаленные инструменты.
  • перерыв в режиме ядра windbg, чтобы остановить цель
  • подождите достаточно долго для подключения TCP visual studio к timeout
  • "g" в windbg, чтобы остановить цель
  • наблюдайте за своим приложением "pop", когда удаленный монитор понимает, что сетевое соединение исчезло
  • перезагрузить приложение :(

устранение:

  • не используйте visual studio.
  • запустите пользовательский режим windbg на цель с "сервером"
  • есть windbg цели запустить приложение.
  • на хосте запустите 2-й windbg, который подключается к цели с помощью "- remote".
  • если соединение TCP умирает, просто запустите другой экземпляр windbg на хосте, и ничего не потеряно. Ваше приложение не умерло, потому что процесс windbg в режиме управления пользователем выполняется на цели.

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

легкий, может быть запущен без установки его на машине клиента, быстро, может отлаживать режим ядра.

в последней версии visual studio все еще отсутствует эквивалент windbg "-o", который заставляет отладчик автоматически подключаться к дочерним процессам? Очень полезно для приложений, которые должны быть запущены из сложной .bat-файл или приложения, которые разветвляются и выходят из родительского процесса.

Мне всегда нравились часы и функция трассировки: 'wt' -> Он выводит в окно вывода все вызовы функций, как они происходят. Это было довольно круто!

Comments

    Ничего не найдено.