大家 go 都是怎么调试, 每次修改都要在 goland 上, go debug main, 真麻烦 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
zhuchuanjun
V2EX    Go 编程语言

大家 go 都是怎么调试, 每次修改都要在 goland 上, go debug main, 真麻烦

  •  
  •   zhuchuanjun 2023-02-27 13:45:47 +08:00 5451 次点击
    这是一个创建于 1046 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 用 goland 上 debug 调试, 但是每次修改, 都要重新 debug
    2. 用 air 热加载, 但是不能 debug

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

    29 条回复    2023-03-03 01:26:45 +08:00
    fiypig
        1
    fiypig  
       2023-02-27 13:47:14 +08:00
    vscode 断点
    zhuchuanjun
        2
    zhuchuanjun  
    OP
       2023-02-27 13:49:28 +08:00
    @fiypig #1 vscode 又能 debug, 又能热加载?
    chenguang0703
        3
    chenguang0703  
       2023-02-27 14:07:21 +08:00   3
    写单元测试阶段性调试代码,这样即使不用热加载也非常快,单元测试基本通过后,再通过继承测试入口调试主流程逻辑。
    penzi
        4
    penzi  
       2023-02-27 14:09:16 +08:00
    写的时候不要老是调试
    dx3759
        5
    dx3759  
       2023-02-27 14:10:34 +08:00
    写单元测试方法,打断点,跑测试数据集
    feedcode
        6
    feedcode  
       2023-02-27 14:13:55 +08:00
    可以试下 air + dlv, remote debugging

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

    ```
    quxuanxuan
        7
    quxuanxuan  
       2023-02-27 14:16:59 +08:00
    log.Debugf("xxx")
    Hanggi
        8
    Hanggi  
       2023-02-27 14:30:15 +08:00
    从来没用过 debug 功能。。。

    go 语言编译那么快,终端跑个单元测试不就好了吗?
    BeautifulSoap
        9
    BeautifulSoap  
       2023-02-27 14:35:04 +08:00
    正经项目的话认真写单元测试,然后 goland 里面对单元测试的 case 进行 debug 呀
    xlongye
        10
    xlongye  
       2023-02-27 14:39:29 +08:00
    vscode + air, 前端一般的调试
    snowlyg
        11
    snowlyg  
       2023-02-27 14:56:26 +08:00   1
    基本不调试,go 难的问题是 并发中的问题 。普通问题单元测试就够了
    airplayxcom
        12
    airplayxcom  
       2023-02-27 14:57:25 +08:00
    盲猜动态语言转过来的
    Goat121
        13
    Goat121  
       2023-02-27 15:42:54 +08:00   2
    这... 我第一次见有人说 go 麻烦,不管用啥方法已经很快了呀
    build 一次半小时的 C++,和 10 分钟的 java 你见过没
    icy37785
        14
    icy37785      2023-02-27 15:54:11 +08:00 via iPhone
    写好测试比 debug 实在多了
    loveeatdog123
        15
    loveeatdog123  
       2023-02-27 16:06:30 +08:00
    把功能拆分得足够细,单元测试通过后 再结合在一起 就比较容易通过了。
    darksword21
        16
    darksword21  
    PRO
       2023-02-27 17:04:13 +08:00
    用 pwd ,pool man's debugger
    darksword21
        17
    darksword21  
    PRO
       2023-02-27 17:05:27 +08:00
    @darksword21 #15 poor
    Zchary
        18
    Zchary  
       2023-02-27 18:17:21 +08:00 via iPhone
    单测 debug 呀
    yuancoder
        19
    yuancoder  
       2023-02-27 19:00:17 +08:00
    单测
    HanMeiM
        20
    HanMeiM  
       2023-02-27 19:30:09 +08:00
    这也麻烦?
    pursuer
        21
    pursuer  
       2023-02-27 21:55:19 +08:00
    @Goat121 13# Java 的类是可以热替换的,不用重新 build ,之前碰到过感觉挺神奇的,只是不知道有没有坑。
    awalkingman
        22
    awalkingman  
       2023-02-27 22:02:12 +08:00 via Android
    @airplayxcom 再猜一个 PHP 或者 js ,Python 不了解
    litguy
        23
    litguy  
       2023-02-28 07:52:37 +08:00
    c++ 写代码,基本靠日志分析 bug 的路过
    偶尔用 gdb 看看堆栈
    没法设置断点之类的
    会导致分布式系统行为异常
    xsen
        24
    xsen  
       2023-02-28 08:41:03 +08:00
    基本就是 单元测试 + 日志;当然这是从之前做 C/C++养成的习惯,gdb 用来调试崩溃问题还是非常方便的
    xiaocaiji111
        25
    xiaocaiji111  
       2023-02-28 09:28:36 +08:00
    @Goat121 感觉在 idea 上和 goland 上启动 java 和 go 速度差不多。当然那种巨大的屎山 java 还是算了吧,半个小时都不一定能编译完。java 修改完不用重启的,可以 reload class ,坑在于极个别场景是失效的。
    vyseyao9
        26
    vyseyao9  
       2023-02-28 09:47:28 +08:00
    dlv
    8520ccc
        27
    8520ccc  
       2023-02-28 21:58:45 +08:00
    基本不调试 遇到 panic 看哪里 panic 去修复一下就是了

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

    是不是有点不正常

    一般是跑起来了手动测试业务是否正常
    xiaocaiji111
        28
    xiaocaiji111  
       2023-03-01 10:16:16 +08:00
    @8520ccc 因为大部分需要断点的时候,都是诡异的问题,正常问题都能看出来
    mauve
        29
    mauve  
    PRO
       2023-03-03 01:26:45 +08:00
    chatGPT 写单元测试,这种活就适合交给它
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5496 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 03:22 PVG 11:22 LAX 19:22 JFK 22:22
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86