Golang Go语言中大家是怎么调试的, 每次修改都要在 Goland 上, go debug main, 真麻烦

  1. 用 goland 上 debug 调试, 但是每次修改, 都要重新 debug
  2. 用 air 热加载, 但是不能 debug

有没有啥两全其美的方法, 又能 debug, 又能热加载


Golang Go语言中大家是怎么调试的, 每次修改都要在 Goland 上, go debug main, 真麻烦
30 回复

vscode 断点

更多关于Golang Go语言中大家是怎么调试的, 每次修改都要在 Goland 上, go debug main, 真麻烦的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


#1 vscode 又能 debug, 又能热加载?

写单元测试阶段性调试代码,这样即使不用热加载也非常快,单元测试基本通过后,再通过继承测试入口调试主流程逻辑。

写的时候不要老是调试

写单元测试方法,打断点,跑测试数据集

可以试下 air + dlv, remote debugging

# .air.toml
<br>[build]<br>full_bin = "dlv exec --accept-multiclient --log --headless --continue --listen :2345 --api-version 2 the-progarm"<br><br>

log.Debugf(“xxx”)

从来没用过 debug 功能。。。

go 语言编译那么快,终端跑个单元测试不就好了吗?

正经项目的话认真写单元测试,然后 goland 里面对单元测试的 case 进行 debug 呀

vscode + air, 前端一般的调试

基本不调试,go 难的问题是 并发中的问题 。普通问题单元测试就够了

盲猜动态语言转过来的

这… 我第一次见有人说 go 麻烦,不管用啥方法已经很快了呀
build 一次半小时的 C++,和 10 分钟的 java 你见过没😂

写好测试比 debug 实在多了

把功能拆分得足够细,单元测试通过后 再结合在一起 就比较容易通过了。

用 pwd ,pool man’s debugger

单测 debug 呀😅

这也麻烦?

13# Java 的类是可以热替换的,不用重新 build ,之前碰到过感觉挺神奇的,只是不知道有没有坑。

再猜一个 PHP 或者 js ,Python 不了解

c++ 写代码,基本靠日志分析 bug 的路过
偶尔用 gdb 看看堆栈
没法设置断点之类的
会导致分布式系统行为异常

基本就是 单元测试 + 日志;当然这是从之前做 C/C++养成的习惯,gdb 用来调试崩溃问题还是非常方便的

感觉在 idea 上和 goland 上启动 java 和 go 速度差不多。当然那种巨大的屎山 java 还是算了吧,半个小时都不一定能编译完。java 修改完不用重启的,可以 reload class ,坑在于极个别场景是失效的。

基本不调试 遇到 panic 看哪里 panic 去修复一下就是了

。。。。。。。。。。。。。。。。。。。。。。。。。

是不是有点不正常

一般是跑起来了手动测试业务是否正常

因为大部分需要断点的时候,都是诡异的问题,正常问题都能看出来

chatGPT 写单元测试,这种活就适合交给它

在Go语言(Golang)开发中,调试确实是一个重要的环节,不过不必局限于每次都在GoLand上使用go debug main。以下是一些高效调试Go程序的策略,希望能帮助你提升效率:

  1. 使用Delve调试器:Delve是Go语言的官方调试器,功能强大且集成在GoLand中。你也可以在命令行中直接使用dlv命令进行调试,支持设置断点、单步执行、查看变量等。

  2. 日志输出:对于简单的错误定位和流程跟踪,合理使用fmt.Println或更高级的日志库(如logruszap)来输出关键变量和程序状态,是一种快速且低成本的调试方法。

  3. 单元测试与基准测试:编写全面的单元测试,利用go test命令自动运行测试,可以帮助在代码修改前后快速验证功能正确性。同时,基准测试可以评估性能变化。

  4. 热重载:部分开发工具支持代码热重载,即在不重启整个程序的情况下应用代码更改。虽然Go原生不支持,但可以通过一些工具和框架(如Gin框架的gin-contrib/reload中间件)实现部分功能的热重载。

  5. 远程调试:对于部署在远程服务器上的Go应用,可以使用Delve的远程调试功能,通过SSH等方式连接到服务器进行调试。

结合使用上述方法,可以显著提高Go语言开发的效率和调试的便捷性。希望这些建议对你有所帮助!

回到顶部