WinDbg — охота за NullPointerException — куда идти дальше?

У нас есть некоторые проблемы на сервере фермы, который падает несколько раз в день. Ни у кого из нас нет опыта работы с WinDbg, но моему коллеге удалось создать дампы с помощью adsutil.vbs, и теперь я анализирую дамп.

Загрузка символов и т. д., которые мне удалось выполнить, — затем я немного прочитал и попробовал как !analyze -v, так и несколько других команд. Среди них я использовал .exr -1, что дает мне следующее:

0:013> .exr -1
ExceptionAddress: 089644b9
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 00000000
   Parameter[1]: 00000000
Attempt to read from address 00000000

Где-то в дампе !analyze я прочитал некоторые подробности о возникновении исключения Nullpointer-Exception, так что пока это мое руководство. Теперь я немного застрял - имея ссылку на ячейку памяти, не зная, где искать дальше... Что бы вы посоветовали мне делать сейчас?


person kerbou    schedule 05.10.2009    source источник


Ответы (2)


Поскольку вы, кажется, можете создать дамп по желанию (учитывая, что сервер довольно часто падает), я бы сделал следующее:

  1. Создайте полный аварийный дамп, если у вас его еще нет. Для этого вы можете использовать AdPlus (найденный в библиотеке WinDbg), просто прочитайте документы, чтобы узнать, как это сделать.
  2. Отладьте дамп в своей собственной среде разработки, либо в Visual Studio (если у вас последняя версия), либо в самом WinDbg, имея весь доступный исходный код.

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

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

person eran    schedule 05.10.2009

Я настоятельно рекомендую начать с Учебники по WinDbg в этом блоге MSDN. На боковой панели в разделе «школа отладки» их около пяти. Ссылки охватывают множество основных аспектов отладки приложений .net.

Или вы можете сразу перейти к Hunting Исключения с Windbg учебник.

person womp    schedule 05.10.2009
comment
Книга Джона Роббинса «Отладка приложений Microsoft .NET 2.0» также является отличным источником — amazon.co.uk/Debugging-Microsoft-NET-2-0-Applications/dp/ - person Simon P Stevens; 05.10.2009