Сначала я включил сохранение файлов дампа на Windows 10 Мобильный телефон:Проверьте файлы дампа из UWP приложения
Настройки> Обновление & безопасность> Для разработчиков> Сохранить много аварийных дампов: 3
Затем я отладил приложение, которое выбрасывало исключение. Я продолжил отладку после остановки. После отсоединения и подключения мобильного телефона я смог получить доступ к файлу дампа, хранящемуся в каталоге Windows phone\Phone\Documents\Debug
. Файл называется
FPCL.WIndows - a736c773-c105-4b30-a799-4bf317872f5e with exception C000027B on 5-03-2016 12.11.dmp
и имеет около 140 МБ!
Я скопировал файл в каталог bin
моего приложения UWP. Впоследствии я открыл его как файл в Visual Studio 2015 (в том же проекте). Теперь я могу видеть Dump Резюме и у меня есть следующие кнопки:
- Debug с Managed Only
- Debug со смешанной
- Debug с Native Только
- Набор путей символов
- Копирование всех в буфер обмена
Если я бегу Debug с Управляется только я
неустранимая исключение перехватывается выполнения. См. $ Stowedexception в окне Watch для просмотра исходной информации об исключении.
и нажав Перерыв я
Нет совместимый код работает. Выбранный отладочный движок не поддерживает какой-либо код, выполняемый в текущем потоке (например, выполняется только собственный исполняемый код).
В 1 окне Watch я вижу следующее
Имя: {CLR} $ stowedexception
Значение: { "Метод или операция не выполнена."}
Тип: System.NotImplementedException
Это должно быть исключение, которое я выбрал в своем приложении. Когда я открываю этот узел и смотрю под StackTrace Я могу получить номер строки. При нажатии Продолжить я
Отладчик не может продолжить выполнение процесса. Эта операция не поддерживается при отладке файлов дампа.
Поэтому я могу только остановить его.
Если я бегу Debug со смешанным я снова
фатальная ошибка была поймана во время выполнения. См. $ Stowedexception в окне Watch для просмотра исходной информации об исключении.
и нажав Перерыв я
kernelbase.pdb не загружен kernelbase.pdb содержит отладочную информацию, необходимую, чтобы найти источник для модуля KERNELBASE.dll Модуль информация: Версия: 10.0.10586.218 (th2_release.160401-1800) Исходное местоположение: KERNELBASE.dll Попробуйте воспользоваться одним из следующих вариантов: Изменить существующие пути PDB и двоичного поиска и повторить попытку: Microsoft Symbol Servers
Здесь я могу либо нажать Нагрузка или Новое. Таким образом, kernelbase.pdb не найден в данном месте. Должна ли она существовать? Где мне его найти?
В окне Часы 1 окно я вижу то же, что и выше, и я могу только остановить его.
Если я бегу Debug с Native Только я
Необработанное исключение в 0x76ECDF95 (combase.dll) в FPCL.WIndows - f736c883-f105-4d30-a719-4bf328872f5e исключением C000027B на 5-03-2016 12.11.dmp: 0xC000027B: Anwendungsinterne Ausnahme (параметры: 0x075C6838, 0x00000002).
и нажав Перерыв я получаю ту же ошибку недостающий kernelbase, как указано выше, но здесь, в 1 окне наблюдать за Значение является Unable to evaluate the expression
. Поэтому я могу только остановить это.
Согласно этому post я должен быть в состоянии проверить исходный код и найти причину. Но как правильно проверять файл дампа UWP?
У меня был некоторый успех с 'уложенными исключениями', используя [windbg] (https://msdn.microsoft.com/ru -gb/library/windows/hardware/ff551063 (v = vs.85) .aspx) Вам нужно будет использовать некоторые команды, чтобы добраться до мяса исключения, которое я попробую, и выкопать их и отправить в ответ позже – SWilko
use Windbg для анализа дампа: http://stackoverflow.com/a/34470061/1466046 – magicandre1981
@SWilko следовать по моей ссылке. Расширение приятно показывать убранные исключения легкими – magicandre1981