Win32: Come in crash?
-
02-10-2019 - |
Domanda
Sto cercando di capire dove sono salvati Segnalazioni di errori di Windows; ho colpito Invia su alcuni prima di oggi, ma ho dimenticato che voglio "vedere i dettagli", in modo che io possa esaminare le minidumps memoria.
Ma non riesco a trovare dove sono memorizzati (e Google non sa).
Quindi, voglio scrivere un'applicazione fittizio che andrà in crash, visualizzare la finestra di WER, mi permetta di fare clic su "visualizzare i dettagli", così posso ottenere alla cartella in cui vengono salvati i discariche.
Come posso mandare in crash su Windows?
Modifica Il motivo che mi chiedo è perché ho provato traboccante lo stack, e in virgola mobile divisione per zero. Stack Overflow rende il Vanish app, ma nessun dialogo WER spuntato. Floating divisione punto per zero risultati in + INF, ma non ha fatto eccezione, e nessun incidente.
Soluzione
Dovrebbe essere un buon inizio:
int main(int argc, char* argv[])
{
char *pointer = NULL;
printf("crash please %s", *pointer);
return 0;
}
Altri suggerimenti
Voi ragazzi siete tutti così verbose! : -)
Ecco un modo compatto per farlo:
*((int*)0)=0;
Si stanno assumendo le immagini della memoria sono ancora in giro. Una volta che sono inviati, AFAIK le discariche vengono cancellati dalla macchina.
Il discariche stessi dovrebbero essere ubicati in% TEMP% da qualche parte.
Per quanto riguarda i crash, che non è difficile, basta fare qualcosa che provoca un segfault.
Non so se questo attiverà l'errore finestra di dialogo Segnalazione, ma si potrebbe provare la divisione per zero.
void crash(void)
{
char* a = 0;
*a = 0;
}
I modi ufficialmente supportati per innescare un incidente di proposito può essere trovato qui:
http://msdn.microsoft.com /en-us/library/ff545484(v=VS.85).aspx
In sostanza:
Con le tastiere USB, è necessario abilitare il crollo della tastiera avviata nel Registro di sistema. Nella chiave di registro HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ kbdhid \ Parameters, creare un valore denominato CrashOnCtrlScroll e impostarlo uguale a un valore REG_DWORD di 0x01.
Quindi:
È necessario riavviare il sistema per queste impostazioni abbiano effetto.
Una volta completata, la tastiera incidente può essere avviata utilizzando la seguente sequenza di tasti: Tenere premuto il tasto CTRL più a destra, e premere il tasto BLOC SCORR due volte.
Nessuna programmazione necessaria;) No reinvenzione della ruota qui:)
interessante sapere come il crash di Windows. Ma perché non dare un'occhiata a
%allusersprofile%\Application Data\Microsoft\Dr Watson\
prima? Guardare fuori per applicazioni specifiche cartelle crashdata così, ad esempio, ho trovato
...\FirefoxPortable\Data\profile\minidumps\
e
...\OpenOfficePortable\Data\settings\user\crashdata\.