Dans quels cas la sortie du programme avec 0x40010004 code?
Mon programme est conçu pour fonctionner sur la plate-forme Windows.
Parfois, il se termine avec l'erreur. Je ne pouvais pas le débogage sur chaque ordinateur où il est installé; j'ai donc ajouté vectorielle gestionnaire d'exception qui envoie des informations sur l'exception au serveur. Il y avait quelques 0xC0000005
exceptions; je l'ai corrigé, mais le programme se termine (je ne pouvais pas reproduire l'erreur sur mon PC).
J'ai écrit un autre programme, qui attend sur les principaux processus de la poignée, et envoie de rapport avec le code de sortie du processus lorsque le processus se termine. J'ai regardé les codes de sortie, et la plupart d'entre eux ont été 0x40010004
(DBG_TERMINATE_PROCESS
). Je sais que ce code de sortie s'affiche lorsque le débogueur est attaché à une application, puis la termine; mais je suis sûr qu'il n'y a pas de débogueur.
Alors... À qui d'autres cas processus peut être résilié avec DBG_TERMINATE_PROCESS
code de sortie?
OriginalL'auteur deselect | 2016-05-06
Vous devez vous connecter pour publier un commentaire.
Sur le plan théorique, il pourrait être n'importe quoi, depuis
TerminateProcess
a un code de sortie paramètre.Sur le côté pratique, c'est probablement dû à l'arrêt du système. Lorsque Windows s'arrête, il tente de quitter programmes en cours d'exécution gracieusement (plus que ici). S'ils refusent de le quitter, ils pourraient être résilié par le système avec le code de sortie
0x40010004
. Par exemple, si vous avez un programme graphique qui affiche une boîte de dialogue modale, et puis vous essayez d'arrêter le système, vous serez invité avec un message "xy.exe est la prévention de l'extinction". Si vous cliquez sur "Forcer l'arrêt", le processus sera tué avec le code de sortie0x40010004
.Si vous essayez de reproduire cela, sachez que le programme en attente sur le processus de votre application
HANDLE
peut être résilié avant de votre application principale.OriginalL'auteur Donpedro