Rattachement à l’application cible

Si le débogueur se fige ou cesse de répondre (c’est-à-dire qu’il plante) pendant que vous effectuez un débogage en mode utilisateur, vous pouvez attacher un nouveau débogueur au processus existant.

Note Cette méthode est prise en charge uniquement sur Microsoft Windows XP et les versions ultérieures de Windows. Cette méthode ne dépend pas de la création initiale du processus par le débogueur ou de son attachement à un processus existant. Cette méthode ne dépend pas de l’utilisation ou non de l’option -pd .

Pour rattacher un débogueur à une application cible existante, procédez comme suit :

  1. Déterminez l’ID de processus de l’application cible.

  2. Démarrez une nouvelle instance de CDB ou WinDbg. Utilisez l’option de ligne de commande -pe .

    Debugger -pe -p PID 
    

    Vous pouvez également utiliser d’autres options de ligne de commande.

    Vous pouvez également vous connecter à partir d’un débogueur dormant à l’aide de la commande .attach (Attacher au processus) avec l’option -e .

  3. Une fois l’attachement terminé, terminez le processus de débogueur d’origine.

  4. Si le processus ne répond pas correctement, il peut avoir un nombre de suspensions trop élevé. Vous pouvez utiliser la commande ~m (Reprendre le thread) pour réduire le nombre de suspensions. Pour plus d’informations sur le nombre de suspensions, consultez Contrôle des processus et des threads.

Si le débogueur d’origine fonctionne toujours correctement, cette méthode risque de ne pas fonctionner. Les deux débogueurs sont en concurrence pour les événements de débogage, et le système d’exploitation Windows n’affecte pas nécessairement tous les événements de débogage au nouveau débogueur.

Si le débogueur d’origine est terminé avant l’attachement du nouveau débogueur, l’application cible est également fermée. (Toutefois, si le débogueur est attaché à l’option -pd , puis se ferme normalement, l’application cible continue de s’exécuter. Dans ce cas, un deuxième débogueur peut s’attacher à l’application cible sans utiliser l’option -pe .)

Si vous déboguez déjà un processus et que vous souhaitez le détacher du processus, mais qu’il reste figé dans un état de débogage, vous pouvez utiliser la commande .abandon (abandonner le processus). Après cette commande, tout débogueur Windows peut se rattacher au processus à l’aide de la procédure décrite dans cette rubrique.