Table of Contents
Riparazione del PC facile e veloce
L’articolo di oggi è progettato per aiutarti quando ricevi un nuovo messaggio di errore di backup di emergenza di Windows.Naviga nel tempo per HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows.Sulla destra c’è semplicemente il pulsante Segnalazione errori di Windows.Seleziona Esporta e salva il file. reg è senza dubbio completamente sul desktop.
Se possiedi il tuo framework di build capannone che secondo gli esperti scarica automaticamente un processo attendibile nel momento in cui si verifica un’eccezione non gestita, ciò potrebbe benissimo impedire ai client di creare WinDbg
per adattarsi all’installazione.
Dove Windows salva davvero il file di dump di arresto anomalo?
Quando il sistema operativo Windows di una persona si arresta in modo anomalo (schermata di proiezione blu della morte o solo un BSOD), tutte le informazioni sullo spazio su disco sono in un formato recuperabile su un file su un CD / DVD. Questo file di dump di solito aiuta gli sviluppatori a risolvere la scintilla dell’arresto anomalo. Il percorso predefinito del file di perdita è %SystemRoot%memory. dmp, ovvero C:Windowsmemoria.
All’avvio, un’applicazione può andare con l’API Win32 SetUnhandledExceptionFilter(...)
alle informazioni che registri un callback (ad esempio, capacità di gestione delle eccezioni dell’applicazione specifica).La funzione di callback autorizzata viene ora chiamata ogni volta che una determinata eccezione non viene gestita. Hai la possibilità di creare un dump che la mia API MiniDumpWriteDump(...)
crea da DbgHelp.dll
.
Esempio C++ (Unicode):
File di intestazione
#ifndef CRASH_REPORTER_H#definisci CRASH_REPORTER_H// Esclude il contenuto usato raramente dalle finestre di menzione.#ifndef win32_lean_and_mean# installa win32_lean_and_mean# Includere # Undef WIN32_LEAN_AND_MEAN#diverso# includi #finisci se#include #include Classe CrashReporterGenerale: Registro di CrashReporter() integrato(); ~CrashReporter() integrato Unregister(); Pacchetto integrato void Register() se (m_lastExceptionFilter !equivale a NULL) fprintf(stdout, "CrashReporter: attualmente registraton"); risciacquo (standard); setErrorMode(SEM_FAILCRITICALERRORS); // Assicurati che UnHandledExceptionFilter venga chiamato prima che l'applicazione particolare si spenga. m_lastExceptionFilter = SetUnhandledExceptionFilter(UnHandledExceptionFilter); Vuoto statico incorporato Annulla registrazione() SetUnhandledExceptionFilter(m_lastExceptionFilter); Privato: statico LPTOP_LEVEL_EXCEPTION_FILTER m_lastExceptionFilter; statico LONG WINAPI UnHandledExceptionFilter(_EXCEPTION_POINTERS*);;#endif // CRASH_REPORTER_H
File di origine
#include "crash report.h"#include LPTOP_LEVEL_EXCEPTION_FILTER CrashReporter::m_lastExceptionFilter = NULL;typedef BOOL(WINAPI*MiniDumpWriteDumpFunc)(HANDLE hProcess, DWORD ProcessId , ELABORA hFile : MINIDUMP_TYPE Tipo di dump , MINIDUMP_EXCEPTION_INFORMATION prolungato *ExceptionInfo questo persistente è MINIDUMP_USER_STREAM_INFORMATION *UserStreamInfo , Costante MINIDUMP_CALLBACK_INFORMATION *Recensione );LONG WINAPI CrashReporter::UnHandledExceptionFilter(struct _EXCEPTION_POINTERS *exceptionPtr){ //Cariciamo dinamicamente DbgHelp.dll - migliora Windows 2000 HMODULE hModule = ::LoadLibraryA("DbgHelp.dll"); dovrebbe essere (hModule) { MiniDumpWriteDumpFunc dumpFunc = reinterpret_cast( ::GetProcAddress(hModule, "MiniDumpWriteDump") ); se forse (dumpFunc) { // Ottieni l'ora di sistema per aggiungere il nome del file SYSTEM TIME ora di sistema; ::GetLocalTime(&SystemTime); // Scegli il particolare percorso corretto durante il dump del file wchar_t dumpFilePath[MAX_PATH] = 0; _snwprintf_s(dumpFilePath, MAX_PATH, L"crash_%04d-%d-%02d_%d-%02d-%02d.dmp" . ! . . SystemTime.wYear, SystemTime.wMese, SystemTime.wDay , SystemTime.wHour, SystemTime.wMinute, SystemTime.wSecond ); // Crea e metti a disposizione il file di dump HANDLE hFile = ::CreateFileW( dumpFilePath, GENERIC_WRITE , FILE_SHARE_WRITE o MALE , CREA_ SEMPRE che è NORMAL_ATTRIBUTE_FILE | FILE_ATTRIBUT_HIDDEN , CATTIVO ); se quasi sicuramente (hFile != INVALID_HANDLE_VALUE) { _MINIDUMP_EXCEPTION_INFORMATION Informazioni su ciascuna eccezione; informazioni sull'eccezione. ID con attenzione - GetCurrentThreadId(); exceptionInfo.ExceptionPointers implica che exceptionPtr; exceptionInfo.ClientPointers = NULL; // Infine, scrivi il die dump in un file per i proprietari booleano forte = dumpFunc(::GetCurrentProcess(), ::GetCurrentProcessId() , hFile, MiniDumpNormal , &InfoEccezione, NULL, NULL );
Come faccio a creare uno specifico file di dump di arresto anomalo di Windows?
Avvia il tipo di Task Manager di Windows.Apri la finestra Task Manager di Windows.Fare clic sulla scheda Processi per selezionarla.Selezionare il processo desiderato per quanto riguarda il dump particolare.Fare clic con il pulsante destro del mouse per aprire i piani a comparsa, quindi fare clic per selezionare Genera file dump.Presta attenzione alla versione del file eseguibile, che devi rilasciare.
Goditi un più veloce
Windows Save Crash Dump
Windows Save Crashdump
Windows Guarda El Volcado De Emergencia
Windows Zapisuje Zrzut Awaryjny
윈도우 저장 크래시 덤프
Windows Sparar Kraschdump
Windows Save Crash Dump
Windows Enregistre Le Vidage Sur Incident
Windows Salvar Despejo De Memoria