Win32: Comment planter?
-
02-10-2019 - |
Question
J'essaie de savoir où les rapports d'erreurs de Windows sont enregistrés; i frappé Envoyer sur certains plus tôt aujourd'hui, mais j'ai oublié que je veux « voir les détails » pour que je puisse examiner les minidumps de mémoire.
Mais je ne peux pas trouver où ils sont stockés (et Google ne sait pas).
Alors je veux écrire une application factice qui va planter, montrer la boîte de dialogue REH, laissez-moi cliquez sur « voir les détails » pour que je puisse obtenir le dossier dans lequel les décharges sont enregistrées.
Comment puis-je planter sur Windows?
Modifier La raison pour laquelle je demande est parce que je l'ai essayé déborder la pile, et à virgule flottante division par zéro. Stack Overflow rend la Vanish app, mais pas de dialogue REH sauté vers le haut. division à virgule flottante par zéro dans les résultats + INF, mais pas exception, et pas de plantage.
La solution
Si un bon début:
int main(int argc, char* argv[])
{
char *pointer = NULL;
printf("crash please %s", *pointer);
return 0;
}
Autres conseils
Vous les gars sont tous si bavard! : -)
Voici une façon compacte de le faire:
*((int*)0)=0;
Vous assumez les vidages de mémoire sont toujours là. Une fois qu'ils sont envoyés, les décharges sont afaik supprimés de la machine.
Les dépotoirs eux-mêmes doivent être situés en% TEMP% quelque part.
En ce qui s'écraser, ce n'est pas difficile, faire quelque chose qui provoque une erreur de segmentation.
Je ne sais pas si cela déclenchera l'erreur de dialogue de rapport, mais vous pouvez essayer une division par zéro.
void crash(void)
{
char* a = 0;
*a = 0;
}
On peut trouver les moyens bénéficiant d'un soutien pour déclencher un accident exprès ici:
http://msdn.microsoft.com /en-us/library/ff545484(v=VS.85).aspx
En gros:
Avec les claviers USB, vous devez activer l'accident initié clavier dans la enregistrement. Dans la clé de Registre HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ kbdhid \ Paramètres, créer une valeur nommée CrashOnCtrlScroll, et le mettre égal à une valeur REG_DWORD de 0x01.
Alors:
Vous devez redémarrer le système pour ces les paramètres prennent effet.
Après cela est terminé, le clavier accident peut être lancé en utilisant le séquence suivante raccourci clavier: Maintenez la droite touche CTRL enfoncée, puis appuyez sur la clé défil deux fois.
Pas de programmation nécessaire;) Pas de réinvention roue ici:)
Il est intéressant de savoir comment le plantage de Windows. Mais pourquoi ne pas jeter un oeil à
%allusersprofile%\Application Data\Microsoft\Dr Watson\
d'abord? Attention pour les dossiers de crashdata de spécifiques d'application ainsi, je trouve par exemple
...\FirefoxPortable\Data\profile\minidumps\
et
...\OpenOfficePortable\Data\settings\user\crashdata\.