Maison > développement back-end > Golang > le corps du texte

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 ?

WBOY
Libérer: 2024-02-08 20:53:53
avant
849 Les gens l'ont consulté

如何使用 Visual Studio Code IDE 附加到交叉编译的 go 二进制文件以进行调试?

Contenu de la question

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.


Bonne réponse


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"
 }
Copier après la connexion

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!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!