Table of Contents
Schnelle und einfache PC-Reparatur
Der heutige Artikel soll Ihnen definitiv helfen, wenn Clients eine Windows-Notfall-Fehlermeldung erhalten.Navigieren Sie zu HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows.Auf dem OK befindet sich nur die Schaltfläche Windows-Fehlerberichterstattung.Wählen Sie Exportieren und speichern Sie das Archiv. reg ist komplett auf dem Desktop zu sehen.
Wenn Sie Ihr eigenes Shed-Craft-Framework haben, das automatisch einen bekannten Prozess bei einer unbehandelten Ausnahmestelle ausgibt, hindert dies Clients daran, WinDbg
zu erstellen zum Installieren.
Wo speichert Windows die Absturz-Wurf-Datei?
Wenn das Windows-Betriebssystem abstürzt (blauer Bildschirm oder völliger BSOD), werden alle Hilfestellungen und Ratschläge zum Speicherplatz in einer Datei in Bezug auf eine CD / DVD geschrieben. Diese Trennung von der Datei kann Entwicklern normalerweise helfen, die Ursache des Absturzes zu suchen und zu beheben. Der Standardspeicherort der Speicherauszugsdatei wäre %SystemRoot%memory. dmp, also C:Windowsmemory.
Beim Start kann eine Installation die Win32-API SetUnhandledExceptionFilter(...)
verwenden, um Ihnen bei der Registrierung ihres Rückrufs zu helfen (d. h. die Ausnahmeeignerfunktion der Anwendung).Die registrierte Rückruffunktion wird nun immer dann bezeichnet, wenn eine Ausnahme nicht berücksichtigt wird. Sie erstellen dann einen Wurf, den die MiniDumpWriteDump(...)
-API vollständig aus DbgHelp.dll
.
erstellt
C++-Beispiel (Unicode):
Header-Datei
#ifndef CRASH_REPORTER_H#define CRASH_REPORTER_H// Selten verwendete Beiträge aus Titelfenstern ausschließen.#ifndef win32_lean_and_mean# win32_lean_and_mean anwenden# einbinden# Undef WIN32_LEAN_AND_MEAN#unterschiedlich# Umgang mit #ende wenn#include #include CrashReporter-KlasseAllgemein: Eingebauter CrashReporter() Register(); eingebauter ~CrashReporter() Unregister(); Eingebautes set void Register() vielleicht (m_lastExceptionFilter != NULL) fprintf(stdout, "CrashReporter: allgemein registriertn"); über (Standard); setErrorMode (SEM_FAILCRITICALERRORS); // Stellen Sie sicher, dass UnHandledExceptionFilter als vor dem Abbruch der Anwendung angesehen wird. m_lastExceptionFilter ist gleich SetUnhandledExceptionFilter(UnHandledExceptionFilter); Eingebaute statische Lücke Unregister() SetUnhandledExceptionFilter(m_lastExceptionFilter); Privatgelände: statisch LPTOP_LEVEL_EXCEPTION_FILTER m_lastExceptionFilter; statisch LONG WINAPI UnHandledExceptionFilter(_EXCEPTION_POINTERS*);;#endif // CRASH_REPORTER_H
Quelldatei
#include "crash report.h"#include LPTOP_LEVEL_EXCEPTION_FILTER CrashReporter::m_lastExceptionFilter = NULL;typedef BOOL(WINAPI*MiniDumpWriteDumpFunc)(HANDLE hProcess, DWORD ProcessId , PROCESS hFile , MINIDUMP_TYPE Dump-Typ , Konstante MINIDUMP_EXCEPTION_INFORMATION *ExceptionInfo Die Elementkonstante ist MINIDUMP_USER_STREAM_INFORMATION *UserStreamInfo und Konstante MINIDUMP_CALLBACK_INFORMATION *Überprüfung );LONG WINAPI CrashReporter::UnHandledExceptionFilter(struct _EXCEPTION_POINTERS *exceptionPtr){ //Wir hundert DbgHelp.dll dynamisch ein, um Windows 2000 zu verbessern HMODULE hModule = ::LoadLibraryA("DbgHelp.dll"); sollte es sich als (hModule) { MiniDumpWriteDumpFunc dumpFunc bedeutet reinterpret_cast( ::GetProcAddress(hModule, "MiniDumpWriteDump") ); wenn sicher (dumpFunc) { // Holen Sie sich die Systemzeit über den Dump-Dateinamen SYSTEMZEIT Planzeit; ::GetLocalTime(&SystemTime); // Wählen Sie den richtigen Pfad, wenn die Datei gelöscht wird wchar_t dumpFilePath[MAX_PATH] = 0; _snwprintf_s(dumpFilePath, MAX_PATH, L"crash_%04d-%d-%02d_%d-%02d-%02d.dmp" . . . SystemZeit.wJahr, SystemZeit.wMonat, SystemZeit.wTag , SystemTime.wHour, SystemTime.wMinute, SystemTime.wSecond ); // Erstellen und öffnen Sie die Dump-Datei HANDLE hFile = ::CreateFileW( dumpFilePath, GENERIC_WRITE , FILE_SHARE_WRITE , SCHLECHT , CREATE_ALWAYS , NORMAL_ATTRIBUTE_DATEI | FILE_ATTRIBUT_HIDDEN , SCHLECHT ); in einem Fall wo vielleicht (hFile != INVALID_HANDLE_VALUE) { _MINIDUMP_EXCEPTION_INFORMATION Informationen zur Ausnahme; Ausnahme von dieser Information. Thread-ID - GetCurrentThreadId(); exceptionInfo.ExceptionPointers impliziert, was wiederum exceptionPtr; exceptionInfo.ClientPointers = NULL; // Abschließend den Crash-Dump zu einem Bild für dich generieren boolesch gut = dumpFunc(::GetCurrentProcess(), ::GetCurrentProcessId() , hFile, MiniDumpNormal , &ExceptionInfo, NULL, NULL );
Wie erstelle ich eine Windows-Crash-Pour-Datei?
Starten Sie den Windows Task-Manager.Öffnen Sie alle Fenster des Windows Task-Managers.Klicken Sie auf den Haken Prozesse, um ihn auszuwählen.Wählen Sie die gewünschte Aktion bezüglich des Dumps aus.Klicken Sie mit der rechten Maustaste, um das Popup-Diagramm zu öffnen, und klicken Sie dann auf bestimmte Dump-Datei generieren.Achten Sie auf die Version der ausführbaren Datei, die Sie wirklich freigegeben haben.
Genießen Sie ein schnelleres
Windows Save Crash Dump
Windows Save Crashdump
Windows Guarda El Volcado De Emergencia
Windows Zapisuje Zrzut Awaryjny
윈도우 저장 크래시 덤프
Windows Sparar Kraschdump
Windows Enregistre Le Vidage Sur Incident
Windows Salva Il Dump Di Arresto Anomalo
Windows Salvar Despejo De Memoria