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

Comment créer une configuration de débogage pour un fichier .go spécifique dans VSCode ?

王林
Libérer: 2024-02-10 18:42:08
avant
1050 Les gens l'ont consulté

如何在 VSCode 中为特定 .go 文件创建调试配置?

Lorsque nous utilisons VSCode pour le développement du langage Go, nous devons souvent déboguer pour résoudre des problèmes. Cependant, pour des fichiers .go spécifiques, nous devrons peut-être créer des configurations de débogage personnalisées. Alors, comment créer une configuration de débogage pour un fichier .go spécifique dans VSCode ? Dans cet article, l'éditeur PHP Youzi vous présentera en détail les étapes et précautions spécifiques pour vous aider à atteindre facilement cet objectif. Que vous soyez débutant ou développeur expérimenté, cet article vous fournira de précieux conseils. commençons!

Contenu de la question

Actuellement, vous devez d'abord concentrer le fichier .go dans l'éditeur pour le débogage, puis appuyer sur la touche F5 pour démarrer le débogage.

Ce que je veux, c'est pouvoir appuyer sur F5 pour lancer le débogage sans avoir à me concentrer d'abord sur main.go dans l'éditeur.

C'est la configuration stock générée par VSCode, vous devez faire attention avant F5 .goFichier :

{
        "name": "Launch Package",
        "type": "go",
        "request": "launch",
        "mode": "auto",
        "program": "${fileDirname}",
    }
Copier après la connexion

Essayez de préciser programcwd pour le satisfaire :

{
        "name": "Launch Package",
        "type": "go",
        "request": "launch",
        "mode": "auto",
        "program": "${workspaceFolder}/cmd/sym_dump/main.go",
        "cwd": "${workspaceFolder}/cmd/sym_dump",
    }
Copier après la connexion

Mais cela ne fonctionne pas, il se plaint d'une fonction introuvable :

Starting: C:\Users\aybe\go\bin\dlv.exe dap --listen=127.0.0.1:49541 from C:\GitHub\psx_mnd_sym/cmd/sym_dump
DAP server listening at: 127.0.0.1:49541
Build Error: go build -o C:\GitHub\psx_mnd_sym\cmd\sym_dump\__debug_bin2780105186.exe -gcflags all=-N -l .\main.go
# command-line-arguments
.\main.go:340:13: undefined: dumpTypes
.\main.go:344:14: undefined: dumpSourceFiles
.\main.go:348:14: undefined: dumpDecls
.\main.go:357:13: undefined: dumpTypes
.\main.go:365:13: undefined: dumpIDAScripts
.\main.go:380:13: undefined: dumpTypes (exit status 1)
Copier après la connexion

La fonction réelle se trouve dans un autre program 同一目录下的另一个 .go fichier dans le même répertoire que program.

Les deux fichiers ont package main spécifié en haut d'eux.

Dans ce cas, comment puis-je créer une configuration de débogage pour un fichier .go 文件创建调试配置?

解决方法

program spécifique ?

Solution${fileDirname}当前打开文件的文件夹路径。默认 Launch Package 模板使用 ${fileDirname} 而不是 ${file} (由 Launch file

Spécifiez l'attribut program comme répertoire :

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch Package",
      "type": "go",
      "request": "launch",
      "mode": "auto",
      "program": "${workspaceFolder}/cmd/sym_dump"
    }
  ]
}
Copier après la connexion
Les modèles sont utilisés) pour une raison. dlv debug Jetons un coup d'oeil aux

docspackage的信息并不多。让我们转向 go run D'abord pour  :

À propos du

docprogram 属性指定为 ${workspaceFolder}/cmd/sym_dump/main.go,则表示该包包含单个文件 (main.go)。但事实是该包包含另一个定义 dumpTypesdumpSourceFiles de

 :

Si nous spécifions l'attribut program comme ${workspaceFolder}/cmd/sym_dump/main.go, cela signifie que le package contient un seul fichier (). Mais le fait est que le package contient un autre fichier qui définit dumpTypes, dumpSourceFiles, etc. C'est pourquoi il ne parvient pas à construire le programme. cwd

BTW, car "si cwd est omis ou vide, le dossier du programme sera utilisé comme répertoire de travail" (voir 🎜Propriétés Launch.json 🎜), vous n'avez pas besoin de définir la propriété 🎜. 🎜

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!