Используемые здесь инструменты никогда не предназначались для устранения неполадок, возникающих при сбое управляемых программ. Minidumps и Windbg - это то, что вы используете, чтобы узнать, что не так с кодом, написанным на C или C ++. Довольно важные инструменты, это языки, среды выполнения которых не поддерживают те лакомства, которые вы можете получить из аварийной управляемой программы. Как исключение с трассировкой стека.
Причина, по которой размеры мини-дампов такие разные, заключается в мини-мини-дампах. По замыслу он должен был сделать небольшой снимок процесса. Соответствующим аргументом является DumpType в функции MiniDumpWriteDump . В этой функции есть действительно умный код, который может выяснить, какие части состояния процесса не нужно записывать, потому что вы вряд ли будете использовать его в сеансе отладчика. Который вы можете переопределить, предоставив дополнительные флаги типа дампа. Мини-дамп, который генерирует Explorer, включает все эти флаги, вы получаете весь комплект и кабачок.
Что на самом деле очень важно для управляемой программы. Эвристика, используемая этим создателем мини-дампов, подходит только для неуправляемого кода. Отладка дампа управляемой программы работает хорошо только тогда, когда вы включаете в него всю кучу мусора. Да, это будет большая свалка, мини больше не применяется.
Ваша следующая проблема заключается в том, что вы получаете представление о машине из данных минидампа. Ваши снимки экрана показывают машинный код. На этих снимках вы оказались внутри Windows, обратите внимание, как ntdll.dll находится на вершине стека. Записи mscorwks.dll являются CLR. Далее, вне поля зрения, вы должны видеть кадры стека из своего собственного кода. Однако вы увидите машинный код, сгенерированный компилятором JIT. Не ваш код C #.
Существует надстройка Windbg под названием sos.dll, которая расширяет набор команд Windbg для возможности проверки управляемых данных. Просто Google "sos.dll", чтобы получить хорошие хиты. Однако это все еще очень далеко от способа отладки, который вы получаете от отладчика Visual Studio. Который хорошо осведомлен об управляемом коде, очень в отличие от Windbg или отладчика VS, который может загружать мини-дампы. Sos действительно был разработан для устранения ошибок CLR.
В VS2010 не было никаких существенных улучшений, кроме информации о мини-дампе, которую вы сейчас видите. Что на самом деле мало что делает. Я подозреваю, что команда отладчика внесла это в свой список задач, и, безусловно, есть некоторые фундаментальные проблемы, которые нужно преодолеть. Особенно в формате минидампа и кода создания. Используйте connect.microsoft.com для предоставления обратной связи, они обращают на нее внимание и позволяют голосам влиять на их список приоритетов.