我想用Intellij,装了go插件,断点调试的时候能在断点出停下来,一旦step over就没了,调试的时候控制台输出这样的go build -o -gcflags "-N -l"
等等这些东西。网上搜了一下,有什么gdb,delve,怎么在intellij里用啊?
我想用Intellij,装了go插件,断点调试的时候能在断点出停下来,一旦step over就没了,调试的时候控制台输出这样的go build -o -gcflags "-N -l"
等等这些东西。网上搜了一下,有什么gdb,delve,怎么在intellij里用啊?
7 回答5.3k 阅读
6 回答6.8k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答3.3k 阅读
2 回答2.2k 阅读
1 回答2.1k 阅读
1 回答1.5k 阅读
我的这个回答可能没法直接解决你的疑问,因为我并不打算告诉你
怎么在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
开始运行程序。具体的调试方法参考GDB和delve。