Maison >développement back-end >Golang >Comment créer une configuration de débogage pour un fichier .go spécifique dans VSCode ?

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

王林
王林avant
2024-02-10 18:42:081084parcourir

如何在 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}",
    }

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",
    }

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)

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"
    }
  ]
}
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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer