Maison >développement back-end >Golang >Comment puis-je m'attacher à un binaire go compilé de manière croisée pour le débogage à l'aide de l'IDE Visual Studio Code ?
J'utilise Visual Studio Code comme IDE pour une application basée sur Golang. L'application fonctionnera sur des cibles Linux. Je souhaite attacher le débogueur VSC à ce binaire compilé de manière croisée. Le binaire peut être compilé pour les plateformes arm ou x86. Je sais qu'un fichier launch.json peut y parvenir, mais je ne l'ai jamais utilisé. s'il vous plaît, aidez-moi.
Debugger dlv est utilisé pour déboguer le code go. Delve ou dlv a une limitation selon laquelle il ne peut être ajouté qu'aux binaires pour les architectures 64 bits. J'ai donc compilé le code pour l'architecture AMD 64 bits et l'ai exécuté sur ma machine Linux. Ensuite, j'ai obtenu l'ID de processus du binaire et j'ai joint une analyse approfondie. J'ai utilisé le port 2345 pour le serveur Delve
dlv Attach some_process_id --listen=:2345 --headless --api-version=2 --log
Vous devrez peut-être également activer/modifier le niveau de débogage sur votre cible Linux avec les privilèges sudo.
cat 0> /proc/sys/kernel/yama/ptrace_scope
Créez un launch.json sur l'IDE Visual Studio Code avec les paramètres suivants :
{ "name": "Launch Windows", "type": "go", "request": "attach", "mode": "remote", "remotePath": "path/to/binary", "port": 2345, "host": "target ip address" }
Puisque j'exécute Visual Studio à partir d'une machine Windows, je sélectionne le mode distant pour la cible Linux distante.
Maintenant, en exécutant le débogueur à partir de Visual Studio Code, les paramètres de launch.json rechercheront le débogueur/serveur dlv sur la cible et s'y attacheront. Placez des points d'arrêt dans votre code, de préférence dans un endroit pouvant être déclenché en externe. Par exemple. Accepte les appels sur le serveur qui peuvent être déclenchés à partir d'appels clients.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!