Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk mencipta konfigurasi nyahpepijat untuk fail .go tertentu dalam VSCode?

Bagaimana untuk mencipta konfigurasi nyahpepijat untuk fail .go tertentu dalam VSCode?

王林
Lepaskan: 2024-02-10 18:42:08
ke hadapan
1087 orang telah melayarinya

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

Apabila menggunakan VSCode untuk pembangunan bahasa Go, kita selalunya perlu nyahpepijat untuk menyelesaikan masalah. Walau bagaimanapun, untuk fail .go tertentu, kami mungkin perlu membuat konfigurasi nyahpepijat tersuai. Jadi, bagaimanakah anda membuat konfigurasi nyahpepijat untuk fail .go tertentu dalam VSCode? Dalam artikel ini, editor PHP Youzi akan memperkenalkan anda kepada langkah-langkah khusus dan langkah berjaga-jaga secara terperinci untuk membantu anda mencapai matlamat ini dengan mudah. Sama ada anda seorang pemula atau pembangun berpengalaman, artikel ini akan memberi anda panduan yang berharga. Mari mulakan!

Kandungan soalan

Pada masa ini, anda mesti memfokuskan fail .go dahulu dalam editor untuk nyahpepijat, dan kemudian tekan kekunci F5 untuk mula menyahpepijat.

Apa yang saya mahukan ialah dapat menekan F5 untuk memulakan debugging tanpa perlu fokus pada main.go dalam editor terlebih dahulu.

Ini adalah konfigurasi stok yang dihasilkan oleh VSCode, anda mesti memberi perhatian sebelum F5 .goFail:

{
        "name": "Launch Package",
        "type": "go",
        "request": "launch",
        "mode": "auto",
        "program": "${fileDirname}",
    }
Salin selepas log masuk

Cuba nyatakan programcwd untuk memuaskannya:

{
        "name": "Launch Package",
        "type": "go",
        "request": "launch",
        "mode": "auto",
        "program": "${workspaceFolder}/cmd/sym_dump/main.go",
        "cwd": "${workspaceFolder}/cmd/sym_dump",
    }
Salin selepas log masuk

Tetapi ini tidak berfungsi, ia merungut tentang fungsi yang tidak dijumpai:

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)
Salin selepas log masuk

Fungsi sebenar berada dalam fail program 同一目录下的另一个 .go lain dalam direktori yang sama seperti program.

Kedua-dua fail package main dinyatakan di bahagian atasnya.

Dalam kes ini, bagaimana saya boleh membuat konfigurasi nyahpepijat untuk fail .go 文件创建调试配置?

解决方法

program tertentu?

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

Nyatakan atribut program sebagai direktori:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch Package",
      "type": "go",
      "request": "launch",
      "mode": "auto",
      "program": "${workspaceFolder}/cmd/sym_dump"
    }
  ]
}
Salin selepas log masuk
Templat digunakan) atas sebab tertentu. dlv debug Mari kita lihat

dokumenpackage的信息并不多。让我们转向 go run Pertama untuk :

Mengenai

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

:

Jika kami menentukan atribut program sebagai ${workspaceFolder}/cmd/sym_dump/main.go, ini bermakna pakej tersebut mengandungi satu fail (). Tetapi hakikatnya pakej itu mengandungi fail lain yang mentakrifkan dumpTypes, dumpSourceFiles, dsb. Itulah sebabnya ia gagal membina program. cwd

BTW, kerana "jika cwd diabaikan atau kosong, folder program akan digunakan sebagai direktori kerja" (lihat 🎜Launch.json properties 🎜), anda tidak perlu menetapkan sifat 🎜. 🎜

Atas ialah kandungan terperinci Bagaimana untuk mencipta konfigurasi nyahpepijat untuk fail .go tertentu dalam VSCode?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan