Если приложение аварийно завершает работу, включите этот параметр реестра, чтобы создать сбой для всех сбойных приложений:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps]
"DumpFolder"="C:\\TEMP"
"DumpCount"=dword:00000010
"DumpType"=dword:00000002
Это создаст аварийный дамп в папке C: \ Temp.Либо откройте этот файл дампа в более новой версии Visual Studio, которая покажет вам точный код, в котором произошел сбой (точно так же, как при отладке и появлении необработанного исключения).
Или чрезвычайно полезный инструмент MS для всехВаши потребности в анализе дампа: Инструменты диагностики отладки (https://www.microsoft.com/en-us/download/details.aspx?id=49924). Видео-пошаговое руководство здесь: https://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-123-DebugDiag-Part-3
Это проанализирует ваше аварийное приложение и покажет вам все потоки и их управляемые и неуправляемые стековые трассировки.точно укажите причину сбоя и место его возникновения, чтобы вы могли проверить эту трассировку стека.
Если, однако, программа не завершилась сбоем, вы можете открыть диспетчер задач и щелкнуть правой кнопкой мыши по процессу и вручную создать файл дампа.Этот файл дампа с помощью Debug Diagnostics при анализе сбоев покажет вам последние X-исключения, которые произошли в вашем приложении со стековыми трассами. Я использую этот метод, чтобы найти фактическую ошибку пользовательских приложений, когда пользователь получает хорошее упрощенное сообщение об ошибке.альтернатива тo Создавая дамп из TaskManager, вы также можете использовать procdump.exe или Debug Diagnostics для создания правил о том, когда создавать файлы дампов.
Я действительно считаю, что все больше людей должны знать о том, как невероятно легко DUMP-файл вместе с Debug Diagnostics найти любую ошибку, которая произошла в производственной среде, где у нас нет доступных удобных инструментов разработки.