Supposons qu'un site distant rencontre une erreur rare mais ne plante pas l'application. Je voudrais quand même créer un mini fichier de vidage quand cela arrive, j'ai donc quelques informations à travailler, principalement la pile d'appels.Est-il possible de créer un fichier mini-dump par programmation sans crash?
pseudo-code est le suivant:
try
{
doStuff();
}
catch(_com_error &e)
{
make_minidump(); // is this possible?
dump_com_error(e);
return FALSE;
}
Tous les exemples que je vois exige que je vais devoir faire l'application à planter (à des fins de démonstration au moins) pour produire le fichier de vidage mais je ne veux pas fais ça. Est-il possible de créer un fichier de vidage comme ça? Je sais que je peux aller au gestionnaire de tâches et créer un fichier de vidage d'un processus en cours d'exécution et de même que je peux utiliser ProcessExplorer pour atteindre le même, donc il semble que ce devrait être possible.
En même temps dans tous les exemples que je vois, le fichier de vidage est généré seulement quand les contrôles viennent à SetUnhandledExceptionFilter qui est appelée quand une application tombe en panne! En dernier recours, la seule façon d'obtenir un fichier de vidage est de planter délibérément l'application avec quelque chose comme ci-dessous: Cela produira-t-il quelque chose d'utile au-delà du crash? parce que je sais ce qui a causé l'accident dans ce cas.
LONG CALLBACK unhandled_handler(EXCEPTION_POINTERS* e)
{
make_minidump(e);
return EXCEPTION_CONTINUE_SEARCH;
}
int main()
{
SetUnhandledExceptionFilter(unhandled_handler);
return *(int*)0;
}
https: // msdn. microsoft.com/fr-fr/library/windows/desktop/ms680360(v=vs.85).aspx –
Possible duplicate (non marqué comme il est daté 2009) http://stackoverflow.com/questions/1547211/how-to -create-minidump-for-my-process-when-it-crash –