Visual Studio и Windbg: какой из них лучше для отладки крупномасштабного управляемого приложения - PullRequest
2 голосов
/ 17 декабря 2009

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

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

Еще один вопрос: может ли без расширения SOS установить точку останова в исходном файле C #?

Ответы [ 3 ]

5 голосов
/ 17 декабря 2009
  • WinDbg по крайней мере на порядок быстрее VS при отладке неуправляемых приложений.
  • Это быстрее при отладке управляемых приложений; однако он не обеспечивает уровень поддержки предложений управляемой отладки VS.
  • WinDbg не может использоваться для управляемой отладки без SOS.

В отдельном примечании, иногда можно получить лучшее из обоих миров, запустив VS внутри WinDbg. Однако вам необходимо:

  1. Имейте кричащую быструю машину с тоннами памяти. Даже не мечтайте сделать это в виртуальной машине.
  2. Не забудьте установить опцию в WinDbg для подключения также к дочерним процессам.
  3. Избегайте сборки в VS во время работы под WinDbg.
3 голосов
/ 17 декабря 2009

Этот Hanselminutes подкаст подробно описывает windbg:

Скотт в Швеции на этой неделе, и он сел с главным отладчиком и инженером по эскалации ASP.NET Тесс Феррандез. Она объясняет .NET Debugging 101. Что такое файл дампа? Вам нужны PDB? Как вы используете WinDBG и каковы лучшие способы отладки проблем с памятью, проблем с перфорированием и зависаний.

2 голосов
/ 02 марта 2010

Я регулярно использую WinDbg для отладки очень большого приложения в смешанном режиме. Я считаю, что варианты копания в деталях времени выполнения, кучах, потоках и т. Д. Очень полезны. Некоторые параметры вряд ли поддерживаются в VS, поэтому WinDbg действительно полезен в этом контексте.

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

Текущая версия WinDbg + SOS не поддерживает отладку на уровне исходного кода для управляемого кода. Если вам это действительно нужно, попробуйте найти версию 6.7.5. Для получения дополнительной информации см. Этот пост: http://voneinem -windbg.blogspot.com / 2007/04 / windbg-6750-release.html

Следующая версия SOS (для .NET 4) действительно поддерживает некоторую отладку на уровне источника, так как она может извлекать исходный файл и информацию о строках для управляемых стеков вызовов и разборки (с помощью команды! U).

...