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 · 4757 次点击
    这是一个创建于 646 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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
    写单元测试阶段性调试代码,这样即使不用热加载也非常快,单元测试基本通过后,再通过继承测试入口调试主流程逻辑。
    maggch97
        4
    maggch97  
       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 实在多了
    tbwisk
        15
    tbwisk  
       2023-02-27 16:06:30 +08:00
    把功能拆分得足够细,单元测试通过后 再结合在一起 就比较容易通过了。
    darksword21
        16
    darksword21  
       2023-02-27 17:04:13 +08:00
    用 pwd ,pool man's debugger
    darksword21
        17
    darksword21  
       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  
       2023-03-03 01:26:45 +08:00
    chatGPT 写单元测试,这种活就适合交给它
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6030 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 02:08 · PVG 10:08 · LAX 18:08 · JFK 21:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.