V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
shijingshijing
V2EX  ›  程序员

现在还有人用 GDB 么?

  •  
  •   shijingshijing · 2018 年 5 月 28 日 · 10399 次点击
    这是一个创建于 2793 天前的主题,其中的信息可能已经有所发展或是发生改变。

    rt,想了解一下,现在还有人用 GDB 的那种一条条命令调试的码农么?我一般都是 IDE 里面直接鼠标点点打断点单步执行调试,后台还是 GDB 但 IDE 做了很多脏活累活,感觉 GDB 用命令那样用的话很累。

    主力 C/C++的筒子们,你们现在一般用什么方法?或者有什么好的 IDE 或者 toolchain ? 手动这样调我以前在嵌入式小板的 Terminal 里面做过,走 COM 口调命令行然后直接用 vi 更改,然后编译,然后 GDB 走一遍。

    56 条回复    2018-05-30 17:36:40 +08:00
    Kmzl
        1
    Kmzl  
       2018 年 5 月 28 日 via Android
    上一家公司有。预定义一些调试函数,很好用
    Pyjamas
        2
    Pyjamas  
       2018 年 5 月 28 日
    Pyjamas
        3
    Pyjamas  
       2018 年 5 月 28 日   ❤️ 1
    [peda]( https://github.com/longld/peda)

    考虑一下
    bombless
        4
    bombless  
       2018 年 5 月 28 日 via Android   ❤️ 1
    ……看你习惯什么工作流了。你要是调试 Windows 驱动,用 cdb / windbg 不也差不多
    wweir
        5
    wweir  
       2018 年 5 月 28 日
    现在谁还用 gdb ?都改用 lldb 了
    0x11901
        6
    0x11901  
       2018 年 5 月 28 日
    一般用苹果爸爸的 lldb
    6ufq0VLZn0DDkL80
        7
    6ufq0VLZn0DDkL80  
       2018 年 5 月 28 日
    肯定有啊,看某个内存地址的内容,看堆栈之类的
    phoebuss
        8
    phoebuss  
       2018 年 5 月 28 日 via Android
    看 coredump 没 gdb 不行啊…
    SupperMary
        9
    SupperMary  
       2018 年 5 月 28 日 via Android
    用 gdb 简直要吐血
    changnet
        10
    changnet  
       2018 年 5 月 28 日 via Android
    没 gdb 简直要死。c++程序,线上的不用 gdb 看哪来的 ide。线下日志加 gdb 调试,win 环境就用 vs
    pyufftj
        11
    pyufftj  
       2018 年 5 月 28 日
    对于 ctf 的 pwn 选手而言,使用 gdb 是家常便饭。我也准备学习一下这工具了。
    shijingshijing
        12
    shijingshijing  
    OP
       2018 年 5 月 29 日
    @changnet
    @phoebuss

    @cholerae
    @pyufftj
    可能有点误解,我的意思不是不用 GDB,而是用的方法,除非是纯命令行没有其他辅助工具,否则很少有人敲 gdb xxx.exe ,然后在命令行下 b 打断点,这样操作吧。基本上都是在 IDE 里面,通过 IDE 调用 GDB 完成吧。
    redsonic
        13
    redsonic  
       2018 年 5 月 29 日
    Tonara
        14
    Tonara  
       2018 年 5 月 29 日
    ssh 登 dev 机器上开发,没得选
    catror
        15
    catror  
       2018 年 5 月 29 日 via Android
    还在用啊,习惯了
    lsmgeb89
        16
    lsmgeb89  
       2018 年 5 月 29 日
    有啊,嵌入式都是 gdb 吧,其实有 gdb 不错了,有的环境只能 printf
    ryd994
        17
    ryd994  
       2018 年 5 月 29 日 via Android   ❤️ 2
    有 gdb 就知足吧
    内核开发,调试全靠 printk,保持现场全靠 ssh 进去 dmesg -w
    snnn
        18
    snnn  
       2018 年 5 月 29 日
    gdb 当然是首选
    gnaggnoyil
        19
    gnaggnoyil  
       2018 年 5 月 29 日
    基于 GDB 的 GUI?有啊. https://github.com/cs01/gdbgui

    不过讲道理 gdb 打断点单步反汇编什么的都挺方便的,而且还可以用 gdbinit 和 pretty printer 扩展.我用 gdb 调程序比我用 vim 写程序还快,虽然这主要是因为我不喜欢 linux 那坨 CUI text editor...
    polaa
        20
    polaa  
       2018 年 5 月 29 日
    gdb 的自由度大多了
    liuzhedash
        21
    liuzhedash  
       2018 年 5 月 29 日
    有 gdb 已经很棒棒了,嵌入式开发只会 printf
    bfdh
        22
    bfdh  
       2018 年 5 月 29 日
    嵌入式环境,一般先看代码,看不出问题加打印,打印不行再 GDB。如果有 coredump 文件,直接 GDB。
    cnmllll
        23
    cnmllll  
       2018 年 5 月 29 日
    目前的环境只能用 GDB, 其实习惯就好了。比 GDb 更难受的是,远程指挥别人 GDB.
    mengzhuo
        24
    mengzhuo  
       2018 年 5 月 29 日
    举手~

    Go 也用 gdb 调试,不过是最终手段,一般用日志。
    prolic
        25
    prolic  
       2018 年 5 月 29 日
    需要 attach 和看 core 的情况只能用 gdb 啊
    kylix
        26
    kylix  
       2018 年 5 月 29 日
    有啊,不过很少用,主要还是通过 ide 调用,
    lujiajing1126
        27
    lujiajing1126  
       2018 年 5 月 29 日
    服务器上调 C / Fortran 程序当然都是 GDB 啊= =
    pkookp8
        28
    pkookp8  
       2018 年 5 月 29 日 via Android
    有 gdb 就不错了
    你能想象 64M 内存 8M flash,gdb 都不能跑,flash 又放不下一个 coredump 的设备吗,一跑就 oom
    只能 printf
    但是编译器神级优化加一个 printf 问题就不出现了
    只能看堆桟,反汇编看出错原因😫
    USNaWen
        29
    USNaWen  
       2018 年 5 月 29 日
    头条。
    shijingshijing
        30
    shijingshijing  
    OP
       2018 年 5 月 29 日 via iPhone
    @lujiajing1126 这年头这个论坛上还能看到用 Fortran 的人也是不容易,Ada 了解一下。
    tempdban
        31
    tempdban  
       2018 年 5 月 29 日 via Android
    @pkookp8 我去…我也是这种情况,唯一区别我是加的 printk
    hncqp
        32
    hncqp  
       2018 年 5 月 29 日 via iPhone
    不用 gdb 还有啥能用的
    shijingshijing
        33
    shijingshijing  
    OP
       2018 年 5 月 29 日 via iPhone
    @hncqp 不是不用。。。 是想问问都是怎么用的,是敲命令用的多还是在 IDE 里面点点点然后让 IDE 帮你弄这样用的多。我的提问标题写的不准确。。。
    lzhCoooder
        34
    lzhCoooder  
       2018 年 5 月 29 日
    还行吧 ide 打断点和 gdb 也没啥区别啊,感觉没麻烦太多
    RqPS6rhmP3Nyn3Tm
        35
    RqPS6rhmP3Nyn3Tm  
       2018 年 5 月 29 日 via iPhone
    我宁可用 print debug 也不用 gdb
    hncqp
        36
    hncqp  
       2018 年 5 月 29 日 via iPhone
    @shijingshijing 线上 core 了的情况基本只能手动敲,没有 ide,其他情况就 printf 吧
    markx
        37
    markx  
       2018 年 5 月 29 日
    好问题! 我也想知道现在人是怎么用的,难道真的手动插断点?!
    scipio
        38
    scipio  
       2018 年 5 月 29 日
    基本每天都在用
    lujiajing1126
        39
    lujiajing1126  
       2018 年 5 月 29 日
    @shijingshijing 某物理模型的数值计算的一个程序

    业界大家都是用 FORTRAN 的,其他物理学家给的子程序都是 Fortran
    Mirana
        40
    Mirana  
       2018 年 5 月 29 日
    c/c++不用 gdb 用啥
    miketeam
        41
    miketeam  
       2018 年 5 月 29 日 via iPhone
    所以 iOS 开发的不学 c 语言真是浪费,Xcode 这么牛逼的调试工具
    shijingshijing
        42
    shijingshijing  
    OP
       2018 年 5 月 29 日 via iPhone
    @miketeam vs 的 debug 才叫 nb 呢,特别是调试树、链表这种稍微复杂点的数据结构。vs 现在还能直接调下位机了呢。
    xuchendev
        43
    xuchendev  
       2018 年 5 月 29 日
    很多,比如我们做图像处理这边,海思平台全是 c,服务器端的 caffe,darknet 也用 gdb 调试啊,很方便。。
    bluefalconjun
        44
    bluefalconjun  
       2018 年 5 月 29 日
    嵌入式开发 printf/k gdb 太奢侈了... 只能关键时候用. :(
    miketeam
        45
    miketeam  
       2018 年 5 月 29 日 via iPhone
    vs 能调试 iOS ?
    nicevar
        46
    nicevar  
       2018 年 5 月 29 日
    @miketeam #45 可以的,三四年前就可以了
    shijingshijing
        47
    shijingshijing  
    OP
       2018 年 5 月 29 日 via iPhone
    @miketeam 看来你还没感受到宇宙第一 IDE 的强大。。。

    vs 还能用来做 iOS 开发呢,不是 xamarin,用原生的 c++写 app,还能跨平台做到 iOS 和 Andrpid 兼顾呢。
    Applenice
        48
    Applenice  
       2018 年 5 月 29 日
    拿来看 core.....十分爽
    karllynn
        49
    karllynn  
       2018 年 5 月 29 日
    @mengzhuo 不用 dlv 么
    mengzhuo
        50
    mengzhuo  
       2018 年 5 月 29 日
    @karllynn 因为不支持 arm64
    dbow
        51
    dbow  
       2018 年 5 月 29 日
    天天用
    chenxytw
        52
    chenxytw  
       2018 年 5 月 29 日
    线上环境看 php-fpm 的 coredump 都是 gdb .....
    miketeam
        53
    miketeam  
       2018 年 5 月 29 日 via iPhone
    说的原生 cpp 写 iOS,你能打包吗?能调试 UI 吗?能检查内存泄漏吗?能管理证书吗?编译速度有 Xcode 快?原生 cpp 写意思说你所以控件都手撸,先不说项目赶不赶,这个项目 iOS 以后就你一个人维护?
    miketeam
        54
    miketeam  
       2018 年 5 月 29 日 via iPhone
    如果都能明天我还 windows
    bilberry
        55
    bilberry  
       2018 年 5 月 29 日
    LLDB
    spensersheng
        56
    spensersheng  
       2018 年 5 月 30 日
    做嵌入式的应该都会用吧,尤其是内存很小的一些特种设备
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3063 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 13:27 · PVG 21:27 · LAX 05:27 · JFK 08:27
    ♥ Do have faith in what you're doing.