Partager via


Débogage à distance en utilisant WinDbg

Le débogage à distance implique deux débogueurs s’exécutant à deux emplacements différents. Le débogueur qui effectue le débogage est appelé serveur de débogage. Le deuxième débogueur, appelé client de débogage, contrôle la session de débogage à partir d’un emplacement distant. Pour établir une session à distance, vous devez d’abord configurer le serveur de débogage, puis activer le client de débogage.

Le code en cours de débogage peut s’exécuter sur le même ordinateur que celui qui exécute le serveur de débogage, ou il peut s’exécuter sur un ordinateur distinct. Si le serveur de débogage effectue un débogage en mode utilisateur, le processus en cours de débogage peut s’exécuter sur le même ordinateur que le serveur de débogage. Si le serveur de débogage effectue un débogage en mode noyau, le code en cours de débogage s’exécuterait généralement sur un ordinateur cible distinct.

Le diagramme suivant illustre une session à distance où le serveur de débogage, en cours d’exécution sur un ordinateur hôte, effectue le débogage en mode noyau du code exécuté sur un ordinateur cible distinct.

Diagramme illustrant les ordinateurs distants, hôtes et cibles connectés pour le débogage en mode noyau.

Important

Il existe d’autres considérations de sécurité importantes lors de l’utilisation du débogage à distance, pour plus d’informations, notamment sur l’activation du mode sécurisé, consultez Sécurité pendant le débogage à distance et Considérations relatives à la sécurité pour les outils de débogage Windows.

Il existe plusieurs protocoles de transport que vous pouvez utiliser pour une connexion de débogage à distance : TCP, NPIPE, SPIPE, SSL et port COM. Supposons que vous avez choisi d’utiliser TCP comme protocole et que vous avez choisi d’utiliser WinDbg comme client de débogage et le serveur de débogage. Vous pouvez utiliser la procédure suivante pour établir une session de débogage en mode noyau distant.

  1. Sur l’ordinateur hôte, ouvrez WinDbg et établissez une session de débogage en mode noyau avec un ordinateur cible. (Voir Débogage en mode noyau en direct à l’aide de WinDbg (classique).)

  2. Arrêtez-vous en choisissant Break dans le menu Débogage ou en appuyant sur Ctrl-Arrêt.

  3. Dans la fenêtre Commande du débogueur, entrez la commande suivante.

    .server tcp :port=5005

    Notez que le numéro de port 5005 est arbitraire. Le numéro de port est votre choix.

  4. WinDbg répond avec une sortie similaire à ce qui suit.

    Server started.  Client can connect with any of these command lines
    0: <debugger> -remote tcp:Port=5005,Server=YourHostComputer
    
  5. Sur l’ordinateur distant, ouvrez WinDbg et choisissez Se connecter à la session à distance dans le menu Fichier .

  6. Sous Chaîne de connexion, entrez la chaîne suivante.

    tcp :Port=5005,Server=YourHostComputer

    YourHostComputer est le nom de votre ordinateur hôte, qui exécute le serveur de débogage.

    Cliquez sur OK.

Utilisation de la ligne de commande

En guise d’alternative à la procédure donnée dans la section précédente, vous pouvez configurer une session de débogage à distance sur la ligne de commande. Supposons que vous êtes configuré pour établir une session de débogage en mode noyau, entre un ordinateur hôte et un ordinateur cible, sur un câble 1394 sur le canal 32. Vous pouvez utiliser la procédure suivante pour établir une session de débogage à distance :

  1. Sur l’ordinateur hôte, entrez la commande suivante dans une fenêtre d’invite de commandes.

    windbg -server tcp :port=5005 -k 1394 :channel=32

  2. Sur l’ordinateur distant, entrez la commande suivante dans une fenêtre d’invite de commandes.

    windbg -remote tcp :Port=5005,Server=YourHostComputer

    YourHostComputer est le nom de votre ordinateur hôte, qui exécute le serveur de débogage.

Important

Le transport 1394 est disponible pour une utilisation dans Windows 10, version 1607 et versions antérieures. Il n’est pas disponible dans les versions ultérieures de Windows. Vous devez transférer vos projets vers d’autres transports, tels que KDNET à l’aide d’Ethernet. Pour plus d’informations sur ce transport, consultez Configuration automatique du débogage du noyau réseau KDNET.

Informations supplémentaires

Il existe de nombreuses façons d’établir un débogage distant autre que ceux présentés dans cette rubrique. Pour obtenir des informations complètes sur la configuration d’un serveur de débogage dans la fenêtre de commande du débogueur WinDbg, consultez .server (Créer un serveur de débogage). Pour obtenir des informations complètes sur le lancement de WinDbg (et l’établissement d’un débogage à distance) sur la ligne de commande, consultez Options de ligne de commande WinDbg.