vscode开启调试模式,结合Delve调试器调试golang项目详细步骤

1.前期准备

(1).在vs code中的扩展程序中搜索并安装Go扩展程序

(2).安装 Delve 调试器

复制代码
go install github.com/go-delve/delve/cmd/dlv@latest

(3).打开vs code的命令面板,输入Go: Install/Update Tools,并单击该命令执行,安装或更新Go语言的工具

2.启动调试

(1).创建launch.json文件

Go 复制代码
{
 // 使用 IntelliSense 了解相关属性。
 // 悬停以查看现有属性的描述。
 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
 "version": "0.2.0",
 "configurations": [
     {
         "name": "Launch Package",
         "type": "go",
         "request": "launch",
         "mode": "auto",
         "program": "${workspaceFolder}/main.go"  // 输入对应的启动文件
         //"cwd": "${workspaceFolder}",
        "args": [],
        "env": {},
        "stopOnEntry": false,
        "trace": false,
        "console": "integratedTerminal"
     }
 ]
}

参数说明:

"program": 指向正确的 Go 文件或包: 对应的参数值可以为如下值:

${workspaceFolder}:表示项目根目录.指向要调试的 Go 文件或包;指向包含 Go 源代码的正确目录:默认启动项目根目录

"cwd": 工作目录,参数值可以为如下值:

${workspaceFolder}:表示项目根目录.

"env":指定环境变量,如果程序需要特定的环境变量,可以这样设置:

Go 复制代码
"env": {
    "DATABASE_URL": "postgres://user:password@localhost:5432/dbname",
    "ANOTHER_VAR": "value"
}

注意:

当项目启动目录和项目运行目录不在同一目录时,可以分别设置cwd和program,以达到调试目的,eg:项目需要在{workspaceFolder}/bin目录下启动并运行{workspaceFolder}/backend目录下的main.go,server.go等go文件,就需要修改program,cwd参数,修改如下:

Go 复制代码
{
 // 使用 IntelliSense 了解相关属性。
 // 悬停以查看现有属性的描述。
 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
 "version": "0.2.0",
 "configurations": [
     {
         "name": "Launch Package",
         "type": "go",
         "request": "launch",
         "mode": "auto",
         "program": "${workspaceFolder}/backend",  // 对应的运行文件或者包目录
         "cwd": "${workspaceFolder}/'bin'",  // 对应的启动文件目录  
     }
 ]
}

3.设置断点,点击调试按钮

启动后,打开接口工具或者文档,发送接口请求,成功进入断点证明没有问题

调试过程中,当代码执行到设置的断点处时,它将暂停执行。可以使用调试工具栏上的控制按钮(如继续、单步执行等)以及观察变量和堆栈信息来检查代码的执行情况

相关推荐
2501_915909062 小时前
Windows 打开 Xcode 工程,编译调试 Xcode 项目并和 Mac 同事协作
ide·windows·vscode·macos·ios·个人开发·xcode
golang学习记3 小时前
比VS Code轻10倍,JetBrains开源全新AI IDE
ide·人工智能·jetbrains·thinkrail
念何架构之路3 小时前
Go 标准库 database/sql 详解
数据库·sql·golang
modelmd3 小时前
Go 切片、映射常见使用场景
开发语言·后端·golang
超级架构师15 小时前
PRAXO-CORE 2.5.0:用 conformance 和显式边界构建 Go Agent 框架
开发语言·人工智能·后端·golang·ai编程·智能体框架·praxo-core
我就是全世界19 小时前
OpenCode Go 套餐划算吗:先看你用哪个模型
开发语言·后端·golang
小杨互联网1 天前
Go 现代 CLI 工具离线镜像合集
开发语言·后端·golang·开源·go·命令行
2501_916007471 天前
Windows OpenSSL 生成 iOS 证书,制作 p12 与描述文件,KXBuild 签名实操
windows·vscode·ios·objective-c·个人开发·swift·敏捷流程
microrain1 天前
跟着一条属性报文走一遍 SagooIoT 的接入链路
物联网·架构·golang·sagooiot
CodeGL1 天前
微服务框架——go-zero
微服务·架构·golang