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!
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 .go
Fail:
{ "name": "Launch Package", "type": "go", "request": "launch", "mode": "auto", "program": "${fileDirname}", }
Cuba nyatakan program
和 cwd
untuk memuaskannya:
{ "name": "Launch Package", "type": "go", "request": "launch", "mode": "auto", "program": "${workspaceFolder}/cmd/sym_dump/main.go", "cwd": "${workspaceFolder}/cmd/sym_dump", }
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)
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
program
sebagai direktori:
{ "version": "0.2.0", "configurations": [ { "name": "Launch Package", "type": "go", "request": "launch", "mode": "auto", "program": "${workspaceFolder}/cmd/sym_dump" } ] }
dlv debug
Mari kita lihat dokumenpackage
的信息并不多。让我们转向 go run
Pertama untuk :
program
属性指定为 ${workspaceFolder}/cmd/sym_dump/main.go
,则表示该包包含单个文件 (main.go
)。但事实是该包包含另一个定义 dumpTypes
、dumpSourceFiles
doc
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
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!