测试代码如下:
//main.go
package main
import (
"math"
"fmt"
)
func main() {
fmt.Printf("Hello, world. Sqrt(2) = %v\n", math.Sqrt(2))
}
方法一:使用Go: Attach to local process
先使用go build命令将main.go文件编译成exe文件
go build main.go
然后.\main.exe运行程序。在vscode中添加配置文件,在launch.json中添加Go: attach to local process配置。
//launch.json
{
"name": "Attach to Process",
"type": "go",
"request": "attach",
"mode": "local",
"processId": 0
}
然后直接使用F5运行,在d出的搜索框中输入main.exe,选择对应目录的main.exe程序,然后就可以调试了。
方法二:使用Go: connect to server该方法的缺点:程序运行时间过短时,vscode无法链接到本地的程序,程序就已经运行结束,vscode无法进行调试
使用Terminal进入项目目录的路径,在控制台使用
dlv debug --headless --listen=:2345
//dlv dap --listen=:2345
启动dlv dap server。在vscode的launch.json中添加Go: connect to server配置
{
"name": "Connect to server",
"type": "go",
"request": "attach",
"debugAdapter": "dlv-dap",
"mode": "remote",
"remotePath": "${workspaceFolder}",
"port": 2345,
"host": "127.0.0.1"
}
然后打开main.go文件,直接使用F5运行就可以进行调试
注:默认创建的配置中,debugAdapter是不配置的,不配置时默认值为legacy,此时运行会报错而且无法进行调试。
error layer=rpc rpc: can't find method RPCServer.Stacktrace
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)