如何调试go

我想用Intellij,装了go插件,断点调试的时候能在断点出停下来,一旦step over就没了,调试的时候控制台输出这样的go build -o -gcflags "-N -l" 等等这些东西。网上搜了一下,有什么gdb,delve,怎么在intellij里用啊?

阅读 9.5k
1 个回答
  • 我的这个回答可能没法直接解决你的疑问,因为我并不打算告诉你怎么在intellij里调试go。一方面,这个IDE我几乎没用过,另一方面,我对程序员重度依赖IDE感到非常不安(我猜想你曾今是Javaer?呵呵)。因此,我都推荐使用简单的文本编辑器来写代码。当然,有一些编辑器配合一些工具(如delve)也具有调试的功能,但这里也不涉及。

  • 对于那些在源代码中用日志的方式进行debug的行为,我也不推荐,因为这样的做法对代码的侵入性太大了。

  • 我这里想说的是通过命令行方式来调试go程序。

  • -gcflags "-N -l"这个参数是为避免做一些编译优化,方便调试用的。

  • 以我自己粗浅的经历来说,不管是gdb还是delve,它们的调试模式常用的就两种(以gdb为例):

    • 调试正在运行的程序(典型的如http服务),那么就是sudo gdb attach PID。进入GDB环境后,先b 源代码文件:行号方式设定断点,再通过类似刷新浏览器方式触发程序运行到断点处开始调试。

    • 调试未运行的程序(典型的如命令行工具),那么就是sudo gdb PROGRAM,进入GDB环境后,通过start或者run开始运行程序。

    • 具体的调试方法参考GDBdelve

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题