2010-05-11 6 views
3

Comment détecter le processus à l'origine d'un GPF?Défaut de protection générale

+0

Que faites-vous en cours d'exécution? Une fenêtre pré-Win2k? –

+0

J'essaie d'exécuter un exe sous Windows XP, ce qui provoque une utilisation élevée du processeur et veut savoir si elle provoque GPF ou non. – vikram

+1

GPF est une sorte de terme ancien de fenêtres 16 bits. Il a tendance à ne pas être utilisé sur Win32 avec des termes comme Access Violation signifiant la même chose. Un processus qui utilise beaucoup de temps CPU n'a évidemment pas planté. Ce n'est pas clair pour moi ce que vous demandez ici. – Stewart

Répondre

1

Je ne suis pas sûr de comprendre votre question. GPF - est la situation où un processeur émet une interruption.

Si cela se produit en mode utilisateur, il est traduit en une exception SEH, qui à son tour peut être gérée par le processus. Si ce n'est pas géré - le processus "se bloque". Moyens - une boîte de message laide est affichée et le processus est terminé (en fonction des paramètres, le processus peut également être débogué, débogage générée, etc ..)

Si cela se produit en mode noyau - il y a deux possibilités . Si cela se produit dans un contexte où les exceptions sont autorisées, l'exception SEH est levée et gérée (de manière similaire au mode utilisateur). Si toutefois l'exception n'est pas gérée, ou si le contexte dans lequel le GPF est arrivé n'autorise pas les exceptions, le système d'exploitation s'arrête, affichant ce que l'on appelle le BSOD (écran bleu de la mort).

maintenant à votre question, je vois plusieurs possibilités:

  • OS meurt, et vous voulez savoir quel processus a fait l'appel système qui a provoqué le GPF en mode noyau. Ceci est possible à découvrir avec le débogueur du noyau joint. Vous verrez également le pilote qui a provoqué l'erreur.
  • Le GPF se passe en mode utilisateur dans un processus et n'est pas géré. Ce processus va planter, et vous saurez certainement quel processus était-ce.
  • Le GPS se déroule à l'intérieur du processus, est géré et le processus continue à s'exécuter. Et vous voulez être averti à ce sujet. Pour cela, vous pouvez attacher au processus avec un débogueur. Chaque fois qu'une exception SEH se produit dans un processus - le débogueur est notifié par le système d'exploitation.