当前位置: 首页 > article >正文

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文件

{
 // 使用 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":指定环境变量,如果程序需要特定的环境变量,可以这样设置:

                

"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参数,修改如下:

   

{
 // 使用 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.设置断点,点击调试按钮 

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

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


http://www.kler.cn/a/488665.html

相关文章:

  • 【GlobalMapper精品教程】093:将tif影像色彩映射表(调色板)转为RGB全彩模式
  • 智慧公厕大数据驱动下的公共卫生管理与优化
  • 初学者关于对机器学习的理解
  • IWOA-GRU和GRU时间序列预测(改进的鲸鱼算法优化门控循环单元)
  • 【工具变量】统计行业锦标赛激励数据集(2008-2023年)
  • 数仓建模:如何判断一个数仓模型的好坏?
  • 每日算法Day14【删除二叉搜索树中的节点、修剪二叉搜索树、将有序数组转换为二叉搜索树、把二叉搜索树转换为累加树】
  • PHP 循环控制结构深度剖析:从基础到实战应用
  • 后端技术选型 sa-token校验学习 上 登录校验复习
  • 【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
  • 从企业级 RAG 到 AI Assistant , Elasticsearch AI 搜索技术实践
  • STM32 中的 CRH 和 CRL 寄存器
  • React+css+切换主题色
  • 金融智能引擎
  • 力扣每日刷题
  • PySpark学习笔记4-共享变量,内核调度
  • Erlang语言的网络编程
  • 力扣 74. 搜索二维矩阵
  • Flask返回浏览器无乱码方法
  • selenium如何分析网页呢 python爬虫,
  • RK3568-ubuntu旋转显示和触摸
  • 准备机器学习数据的完整指南
  • 开源 vGPU 方案 HAMi 解析
  • Python Excel页眉页脚设置详解
  • FairGuard游戏安全2024年度报告
  • 如何进行单体前后端项目的微服务改造