Partager via


Choix de la meilleure méthode de débogage à distance

Il existe deux méthodes principales pour effectuer un débogage à distance, ainsi que plusieurs méthodes supplémentaires et un grand nombre de méthodes combinées.

Voici quelques conseils pour vous aider à choisir la meilleure technique.

  • Le débogage à distance via le débogueur est généralement la meilleure méthode. Si vous avez simplement un serveur et un client et qu’ils peuvent se connecter librement les uns aux autres, les mêmes fichiers binaires de débogueur sont installés sur le client et le serveur, et le technicien de débogage qui exploitera le client sera en mesure de parler à quelqu’un dans la salle avec le serveur, c’est la méthode recommandée.

    Le client et le serveur peuvent exécuter n’importe quelle version de Windows. Ils n’ont pas besoin d’exécuter la même version les uns que les autres.

    Si le client ne parvient pas à envoyer une demande de connexion au serveur, mais que le serveur est en mesure d’envoyer une demande au client, vous pouvez utiliser le débogage à distance via le débogueur avec une connexion inversée à l’aide du paramètre clicon .

  • Le débogage à distance via remote.exe permet de contrôler à distance une fenêtre d’invite de commandes. Il peut être utilisé pour contrôler à distance KD, CDB ou NTSD. Il ne peut pas être utilisé avec WinDbg.

    Si votre client n’a pas de copies des fichiers binaires du débogueur, vous devez utiliser la méthode remote.exe.

  • Un serveur de processus ou un serveur de connexion KD peut être utilisé si le technicien de débogage ne peut pas communiquer avec quelqu’un dans la salle avec le serveur. Tout le travail de débogage réel est effectué par le client (appelé client intelligent) ; cela supprime la nécessité d’avoir une deuxième personne sur le serveur lui-même.

    Les serveurs de processus sont utilisés pour le débogage en mode utilisateur ; Les serveurs de connexion KD sont utilisés pour le débogage en mode noyau. Outre cette distinction, ils se comportent de la même manière.

    Cette méthode est également utile si l’ordinateur sur lequel le serveur sera en cours d’exécution ne peut pas gérer des charges de processus lourdes, ou si le technicien exécutant le client a accès aux fichiers de symboles ou aux fichiers sources qui sont confidentiels et qui ne sont pas accessibles par le serveur. Toutefois, cette méthode n’est pas aussi rapide ou efficace que le débogage à distance via le débogueur. Cette méthode ne peut pas être utilisée pour le débogage de fichiers de vidage.

    Pour plus d’informations, consultez Serveurs de traitement (mode utilisateur) et Serveurs de connexion KD (mode noyau).

  • Un répéteur est un serveur proxy léger qui relaye des données entre deux ordinateurs. Vous pouvez ajouter un répéteur entre le client et le serveur si vous effectuez un débogage à distance via le débogueur ou si vous utilisez un serveur de processus.

    L’utilisation d’un répéteur peut être nécessaire si votre client et votre serveur ne peuvent pas communiquer directement entre eux, mais peuvent chacun accéder à un ordinateur externe. Vous pouvez également utiliser des connexions inverses avec des répéteurs. Il est même possible d’utiliser deux répéteurs à la suite, mais cela est rarement nécessaire.

    Pour plus d’informations, consultez Répéteurs .

  • Il est également possible de contrôler CDB (ou NTSD) à partir du débogueur de noyau. Il s’agit d’une autre forme de débogage à distance. Pour plus d’informations, consultez Contrôle du débogueur de User-Mode à partir du débogueur de noyau .

Des variantes sur toutes ces méthodes sont possibles.

Il est possible de chaîner plusieurs ordinateurs ensemble pour tirer parti de plusieurs méthodes de transport. Vous pouvez créer des séquences de transport compliquées qui tiennent compte de l’emplacement du technicien, de l’emplacement des symboles et de l’emplacement de pare-feu empêchant les connexions dans certaines directions. Pour obtenir des exemples, consultez Scénarios de débogage à distance avancés .

Vous pouvez même effectuer un débogage à distance sur un seul ordinateur. Par exemple, il peut être utile de démarrer un serveur de processus à faible privilège, puis de s’y connecter avec un client intelligent à privilèges élevés.