如何配置dlv等待VS Code客户端连接后再执行Go代码?
解决dlv调试服务器等待VS Code连接后再执行代码的问题
核心问题
你当前的dlv启动命令未配置程序暂停逻辑,导致调试服务启动后直接运行Go代码,无法提前设置目标断点。
解决方案
修改dlv启动命令,添加两个关键参数:--wait 和 --break main.main:
dlv debug /home/vagrant/go_dev/very_simple_server_dir/very_simple_server.go --headless --listen=:3000 --log --wait --break main.main
参数说明
--wait:让dlv先启动调试服务,等待VS Code客户端连接后再启动目标程序--break main.main:强制在main函数入口设置断点,确保程序启动后立刻暂停,方便你在VS Code中添加任意需要的断点
操作步骤
- 终止正在运行的dlv进程
- 执行上述修改后的dlv启动命令,此时终端会显示调试服务已启动,但不会立即运行你的Go程序
- 在VS Code中启动调试连接(你现有的
launch.json配置无需修改) - 连接成功后,程序会暂停在
main函数第一行,此时你可以为fmt.Println("server started now!")这行设置断点 - 点击VS Code调试工具栏的「继续」按钮,程序会运行到你设置的断点处,后续即可正常调试
内容的提问来源于stack exchange,提问作者user63898
相关产品推荐
相关产品推荐

