V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
zhuchuanjun

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

  •  
  •   zhuchuanjun · Feb 27, 2023 · 5645 views
    This topic created in 1154 days ago, the information mentioned may be changed or developed.
    1. 用 goland 上 debug 调试, 但是每次修改, 都要重新 debug
    2. 用 air 热加载, 但是不能 debug

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

    29 replies    2023-03-03 01:26:45 +08:00
    fiypig
        1
    fiypig  
       Feb 27, 2023
    vscode 断点
    zhuchuanjun
        2
    zhuchuanjun  
    OP
       Feb 27, 2023
    @fiypig #1 vscode 又能 debug, 又能热加载?
    chenguang0703
        3
    chenguang0703  
       Feb 27, 2023   ❤️ 3
    写单元测试阶段性调试代码,这样即使不用热加载也非常快,单元测试基本通过后,再通过继承测试入口调试主流程逻辑。
    penzi
        4
    penzi  
       Feb 27, 2023
    写的时候不要老是调试
    dx3759
        5
    dx3759  
       Feb 27, 2023
    写单元测试方法,打断点,跑测试数据集
    feedcode
        6
    feedcode  
       Feb 27, 2023
    可以试下 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  
       Feb 27, 2023
    log.Debugf("xxx")
    Hanggi
        8
    Hanggi  
       Feb 27, 2023
    从来没用过 debug 功能。。。

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

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

    是不是有点不正常

    一般是跑起来了手动测试业务是否正常
    xiaocaiji111
        28
    xiaocaiji111  
       Mar 1, 2023
    @8520ccc 因为大部分需要断点的时候,都是诡异的问题,正常问题都能看出来
    mauve
        29
    mauve  
    PRO
       Mar 3, 2023
    chatGPT 写单元测试,这种活就适合交给它
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   825 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 83ms · UTC 20:50 · PVG 04:50 · LAX 13:50 · JFK 16:50
    ♥ Do have faith in what you're doing.