Когда использовать windbg для отладки? - PullRequest
2 голосов
/ 20 февраля 2011

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

Ответы [ 3 ]

4 голосов
/ 20 февраля 2011

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

WinDbg также имеет несколько хороших расширений, таких как SOS. Таким образом, конкретное расширение может предоставить вам конкретную информацию, которой не обладает другой отладчик.

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

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

1 голос
/ 21 февраля 2011

Хороший вопрос. Другим хорошим решением для отладки виртуального ядра является LiveKd от sysinternals.

http://technet.microsoft.com/en-us/sysinternals/bb897415.aspx

1 голос
/ 21 февраля 2011

Хотя Windbg также является хорошим инструментом для отладки в пользовательском режиме, если вы в конечном итоге выполняете отладку в режиме ядра, это действительно единственный серьезный выбор.отладчик и отладчик.Вы будете запускать Windbg на компьютере отладчика, который подключен к отладчику через последовательное соединение, Firewire или USB.В этом сценарии вы можете «заморозить» целевой компьютер и иметь полный контроль над всем, что работает на нем.Часто вашим отладчиком (целью) будет виртуальная машина, работающая под управлением VMWare или аналогичная - в этом случае соединение также обычно использует виртуальные последовательные порты.

Вот инструкции от VMWare о том, как настроить отладку ядра виртуальной машины:

http://www.vmware.com/support/ws5/doc/ws_devices_serial_advanced_example_debugging.html

Вы также можете использовать VirtualKD, который упрощает настройку иподключение намного быстрее:

http://virtualkd.sysprogs.org/

Вы также можете использовать Windbg для локальной отладки ядра.В этом случае у вас есть только один компьютер, на котором вы подключаете Windbg к работающему ядру.Вы не можете «заморозить» машину, так как она также остановит Windbg, работающий на той же машине, но вы можете анализировать содержимое памяти и т. Д.

...