go调试的问题。

各位用的是什么工具调试go的?调试过程有没碰到一些蛋疼的问题 比如: 1.断点需要在debug之前就打才能生效 2.运行过程中断点去掉后还会断到。 3.单步调试会跳来跳去、(这个在调试beego的controler的时候比较容易碰到)

我用JetBrains的idea和Goglang、同事用的是vscode,都有碰到调试问题。

编译器用的是delve 试过几个版本的delve都没有相对完美的,有的断点可以在运行过程中打,但是简单逻辑的单步调试要很久4 5秒那种。

想问下各位用的什么调试工具和编译器,调试过程中有没有这些蛋疼的问题?

已邀请:

astaxie - 创造、获取、分享、传播和应用Go

赞同来自: PureWhite

现在调试有两个:

  1. 打印日志,这个好处就是哪里需要数据哪里打印,我目前用这个比较多
  2. vscode+dlv调试 希望这一篇文章可以帮到你 http://tqdev.com/2016-debugging-go-with-vscode-and-delve

PureWhite - 主业写bug,副业debug

赞同来自:

和调试工具无关。 最重要的是: 不要用断点 不要用断点 不要用断点 调试就老老实实print出来就好,哪里不对print哪里,妈妈再也不用担心我的代码,so easy。 比如一段程序,我可以二分地去print,这样每次可以缩小一半的范围。

lrita

赞同来自:

什么都没Debugf好用...,特别是大部分逻辑并行的时候

voidint - https://github.com/voidint

赞同来自:

对于那些需要debug就用print的同学,我真的非常不能理解(当然你们也可能同样不理解,debug不想用print的我)。使用print或者log会侵入原有代码(或者你们使用了我还不了解的更高级的print方式),并且在添加完print代码之后,几乎必然的需要再去删除这些代码。而一旦有第三方库需要debug,难道也在里面print?我很难想想这样的使用场景。虽然,现在使用dlvgdb这类工具去debug并不尽善尽美,但我还是更加愿意这样去debug。

winlin - 要浪就要够浪

赞同来自:

GOLANG的设计者说协程这种东西,并行运行,不合适debug调试,有时候调试无法还原它的执行顺序。 不过个人觉得有时候调试比较方便,貌似GOLANG的调试做得不太好,因为作者就不认同debug。 作者认同的调试方式不是debug,而是print。所以很多gopher都是print。

要回复问题请先登录注册