0

0

如何在VSCode中开发并调试Go语言?【教程】

狼影

狼影

发布时间:2026-01-16 22:26:02

|

633人浏览过

|

来源于php中文网

原创

VSCode调试Go程序完全可行,但需正确安装go(≥1.16)、dlv及官方Go扩展,配置launch.json中program为目录路径而非文件路径,并确保GOPATH/bin在PATH中。

如何在vscode中开发并调试go语言?【教程】

VSCode 调试 Go 程序完全可行,但必须装对扩展、配好 go 环境、且不能依赖默认 launch 配置——否则大概率卡在 “No debug adapter found” 或 “dlv not found”。

确认本地 godlv 已正确安装

VSCode 的 Go 扩展不自带调试器,它依赖系统级的 dlv(Delve)。只装 go 不行,只装扩展也不行。

  • go version 必须 ≥ 1.16(推荐 1.20+),运行 go env GOPATH 记下路径
  • 执行 go install github.com/go-delve/delve/cmd/dlv@latest 安装 dlv;成功后 dlv version 应能输出版本
  • 确保 $GOPATH/bin(或 go env GOPATH 输出路径下的 /bin)已加入系统 PATH,否则 VSCode 启动调试时找不到 dlv
  • Windows 用户注意:不要用 PowerShell 安装完就切回 CMD 调试——环境变量可能未同步

安装并配置 Go 扩展(不是“Go for Visual Studio Code”,是官方那个)

VSCode 商店搜 “Go”,认准发布者是 Go Team at Google。旧版叫 “Go for Visual Studio Code”,新版已统一为 “Go”。装错扩展会导致 go.mod 不识别、代码不补全、调试按钮灰掉。

  • 安装后重启 VSCode,打开一个含 go.mod 的文件夹,状态栏右下角应显示 Go 和当前 Go 版本
  • Ctrl+, 打开设置,搜索 go.toolsManagement.autoUpdate,设为 true,避免手动装 goplsgoimports工具
  • 如果编辑器提示 “Missing tool: gopls”,点击提示里的 “Install All” —— gopls 是语言服务器,没它就没有跳转、悬停、重命名等核心功能

调试前必须生成正确的 launch.json

直接点绿色 ▶️ 按钮调试会失败。必须通过命令面板(Ctrl+Shift+P)运行 Debug: Open launch.json,选择 Go 环境生成模板,再手动调整。

php中级教程之ajax技术
php中级教程之ajax技术

AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。它不是新的编程语言,而是一种使用现有标准的新方法,最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容,不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。《php中级教程之ajax技术》带你快速

下载

立即学习go语言免费学习笔记(深入)”;

  • 最简可用配置只改两项:mode(通常为 autoexec)和 program(指向 main.go 所在目录,不是文件路径)
  • 不要写 "program": "./main.go" —— 这是常见错误,program 应为目录路径,Delve 会自动找 main
  • 如需传命令行参数,加 "args": ["--flag", "value"];如需工作目录隔离,加 "cwd": "${workspaceFolder}/cmd/myapp"
  • 若项目用 Go Modules,确保 launch.json 中没有硬编码 GOPATH 相关字段,Delve 会自动读取 go.mod
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch Package",
      "type": "go",
      "request": "launch",
      "mode": "test", // 或 "auto", "exec", "core"
      "program": "${workspaceFolder}",
      "env": {},
      "args": []
    }
  ]
}

断点不命中?检查 dlv 启动模式和构建标签

断点灰色、控制台输出 “Could not launch process: could not fork/exec” 或 “no source found for …” 多半是构建问题,而非配置错误。

  • 确保当前文件属于 main 包,且有 func main();非 main 包文件无法直接调试
  • 如果用了构建标签(如 //go:build integration),需在 launch.jsonenv 里加 "CGO_ENABLED": "1",或在 args-tags=integration
  • 修改代码后务必保存(Ctrl+S),Delve 不支持热重载;改了 go.mod 后需手动运行 go mod tidy
  • Mac M1/M2 用户遇到 exec format error:说明 dlv 是 x86 编译的,删掉重装(go install 会自动匹配架构)

真正卡住的地方往往不是配置本身,而是 dlv 是否在 PATH 里、go.mod 是否被识别、以及断点打在了根本不会执行的分支上——建议先用 dlv debug 命令行验证能否跑通,再回到 VSCode。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

412

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

533

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

309

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

74

2025.09.10

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

618

2023.07.31

python中的format是什么意思
python中的format是什么意思

python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

430

2024.06.27

scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

187

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

280

2023.10.25

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

27

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
go语言零基础开发内容管理系统
go语言零基础开发内容管理系统

共34课时 | 2.5万人学习

第二十三期_前端开发
第二十三期_前端开发

共98课时 | 7.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号