Как использовать WinDBG для отслеживания исключений .net из памяти?

Мне нужно отследить причину исключений нехватки памяти (OOM) в приложении .NET. При использовании perfmon приложение аварийно завершает работу с OOM при использовании сравнительно небольшого объема памяти (500-700 МБ), поэтому я предполагаю некоторую фрагментацию кучи.

После исследования кажется, что WinDBG - это инструмент, используемый для отслеживания такого рода проблем. Я настроил DebugDiag на сервере, на котором запущены процессы. Мне также удалось загрузить дамп из DebugDiag в WinDBG, подключить сервер символов и мои собственные файлы личных символов, и все это, кажется, работает - я могу запускать такие команды, как!clrstack а также!dumpheap -stat и я увижу мои имена классов в списке.

Проблема, с которой я столкнулся сейчас, заключается в том, что я не знаю, как подойти к проблеме отслеживания фрагментации. В WinDGB много команд с множеством различных флагов и опций, и я не уверен, какие из них мне следует использовать. Я не мог отыскать хороший учебник о том, что делать, - большинство из них действительно просты для запуска и запуска WinDBG.

Может ли кто-нибудь указать мне правильное направление?

Ответы на вопрос(1)

Ваш ответ на вопрос