Анализ управляемого стека вызовов из компактной среды - PullRequest
1 голос
/ 21 января 2012

У меня есть посмертный kdmp, сгенерированный приложением C # .NET CF 3.5, работающим в Windows Mobile 6.5 ARMV4I, который я хотел бы проанализировать в WinDBG X86 6.12.0002.633.

Я могу получить неуправляемый стек вызовов, но это не говорит мне намного больше, чем то, что я нахожусь в приложении .net.

В больших окнах я мог бы использовать SOS для выполнения !clrstack, но mscorwks.dll не загружается CF.

17:362:armce> !clrstack
Failed to find runtime DLL (mscorwks.dll), 0x80004005
Extension commands need mscorwks.dll in order to have something to do.

Что мне нужносделать, чтобы проанализировать файл дампа, сгенерированный компактной платформой?

Спасибо, PaulH

1 Ответ

0 голосов
/ 11 февраля 2012

Убедитесь, что следующие пункты:

1 - Загрузите SOS правильно для правильной версии фреймворка

Для 2.0 -> C: \ windows \ Microsoft.NET \ Framework \v2.0.50727 \ sos.dll

для 4.0 -> C: \ windows \ Microsoft.NET \ Framework \ v4.0.30319 \ sos.dll

2 - убедитесь, что вы используете правильныйверсия sos, загруженная для процесса, чей дамп анализируется.

Для процесса, использующего .net 4.0, загрузите файл sos.dll для платформы 4.0 и то же самое применимо к другим платформам.

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

Обычно я копирую SOS.dll в каталог отладчиков и изменяюимя

SOS20.dll для версии .NET 2.0 и SOS40.dll для .NET 4.0

Затем загрузите dll в отладчике, используя

.load SOS20.dll когда необходимо отладить процесс, работающий в .NET 2.0 или загрузить другую версию (.load SOS40.dll).

...