2010-05-11 3 views
6

Je reçois des images décodées de mon moteur et mon jeu en utilisant SurfaceView dans android. Mais il joue pendant 2-3 secondes, puis mon application se bloque avec l'erreur "débogueur se suicider pour libérer le zombie".débogueur se suicider pour libérer le zombie

S'il vous plaît aidez-moi. J'utilise Android SDK 2.1.

+13

C'est comme le message d'erreur le plus cool JAMAIS! – hannson

+1

Possible dupliqué (et sinon, la réponse acceptée s'applique toujours): http://stackoverflow.com/questions/2022868/android-application-failing-upon-user-scrolling-no-obvious-error –

+4

Vous êtes censé tuer les zombies, ne pas les libérer. Les enfants ces jours-ci. – Amy

Répondre

6

**** Je pensais que c'était une alerte de jeu pas un message de journal de débogage Android = | ****

processus Zombie

sur Unix et les systèmes d'exploitation informatique Unix, un processus zombie ou processus défunt est un processus qui a terminé son exécution, mais a encore une entrée dans la table des processus. Cette entrée est toujours nécessaire pour permettre au processus qui a démarré le processus (now zombie) de lire son statut de sortie. Le terme de processus zombie dérive de la définition commune de zombie - une personne morte-vivante. Dans la métaphore colorée du terme, le processus de l'enfant est mort mais n'a pas encore été récolté. En outre, contrairement aux processus normaux, la commande kill n'a aucun effet sur un processus zombie. Lorsqu'un processus se termine, toute la mémoire et les ressources qui lui sont associées sont désallouées afin de pouvoir être utilisées par d'autres processus. Toutefois, l'entrée du processus dans la table de processus reste. Le parent peut lire le statut de sortie de l'enfant en exécutant l'appel du système d'attente, à quel stade le zombie est supprimé. L'appel d'attente peut être exécuté en code séquentiel, mais il est généralement exécuté dans un gestionnaire pour le signal SIGCHLD, que le parent reçoit chaque fois qu'un enfant est mort. Après la suppression du zombie, son ID de processus et son entrée dans la table de processus peuvent être réutilisés. Cependant, si un parent ne parvient pas à appeler wait, le zombie sera laissé dans la table de processus. Dans certaines situations, cela peut être souhaitable, par exemple si le parent crée un autre processus fils, il s'assure qu'il ne se verra pas attribuer le même ID de processus. Sur les systèmes modernes UNIX (conformes à la spécification SUSv3 à cet égard), le cas particulier suivant s'applique: si le parent ignore explicitement SIGCHLD en définissant son gestionnaire sur SIG_IGN (au lieu d'ignorer simplement le signal par défaut) ou avec le flag SA_NOCLDWAIT défini, toutes les informations d'état de sortie enfant seront ignorées et aucun processus zombie ne sera laissé.

Un processus zombie est différent d'un processus orphelin. Un processus orphelin est un processus qui est toujours en cours d'exécution, mais dont le parent est décédé. Ils ne deviennent pas des processus de zombies; à la place, ils sont adoptés par init (ID de processus 1), qui attend ses enfants.

de WIKI! =)