
rt,想了解一下,现在还有人用 GDB 的那种一条条命令调试的码农么?我一般都是 IDE 里面直接鼠标点点打断点单步执行调试,后台还是 GDB 但 IDE 做了很多脏活累活,感觉 GDB 用命令那样用的话很累。
主力 C/C++的筒子们,你们现在一般用什么方法?或者有什么好的 IDE 或者 toolchain ? 手动这样调我以前在嵌入式小板的 Terminal 里面做过,走 COM 口调命令行然后直接用 vi 更改,然后编译,然后 GDB 走一遍。
1 Kmzl 2018-05-28 22:09:07 +08:00 via Android 上一家公司有。预定义一些调试函数,很好用 |
2 Pyjamas 2018-05-28 22:12:49 +08:00 |
3 Pyjamas 2018-05-28 22:13:12 +08:00 |
4 bombless 2018-05-28 22:17:21 +08:00 via Android ……看你习惯什么工作流了。你要是调试 Windows 驱动,用 cdb / windbg 不也差不多 |
5 wweir 2018-05-28 22:19:21 +08:00 现在谁还用 gdb ?都改用 lldb 了 |
6 0x11901 2018-05-28 23:35:12 +08:00 一般用苹果爸爸的 lldb |
7 6ufq0VLZn0DDkL80 2018-05-28 23:35:46 +08:00 肯定有啊,看某个内存地址的内容,看堆栈之类的 |
8 phoebuss 2018-05-28 23:36:25 +08:00 via Android 看 coredump 没 gdb 不行啊… |
9 SupperMary 2018-05-28 23:51:22 +08:00 via Android 用 gdb 简直要吐血 |
10 changnet 2018-05-28 23:56:44 +08:00 via Android 没 gdb 简直要死。c++程序,线上的不用 gdb 看哪来的 ide。线下日志加 gdb 调试,win 环境就用 vs |
11 pyufftj 2018-05-28 23:57:37 +08:00 对于 ctf 的 pwn 选手而言,使用 gdb 是家常便饭。我也准备学习一下这工具了。 |
12 shijingshijing OP |
13 redsonic 2018-05-29 01:01:18 +08:00 |
14 Tonara 2018-05-29 01:10:52 +08:00 ssh 登 dev 机器上开发,没得选 |
15 catror 2018-05-29 01:29:09 +08:00 via Android 还在用啊,习惯了 |
16 lsmgeb89 2018-05-29 03:59:20 +08:00 有啊,嵌入式都是 gdb 吧,其实有 gdb 不错了,有的环境只能 printf |
17 ryd994 2018-05-29 06:00:58 +08:00 via Android 有 gdb 就知足吧 内核开发,调试全靠 printk,保持现场全靠 ssh 进去 dmesg -w |
18 snnn 2018-05-29 08:58:14 +08:00 gdb 当然是首选 |
19 gnaggnoyil 2018-05-29 09:11:40 +08:00 基于 GDB 的 GUI?有啊. https://github.com/cs01/gdbgui 不过讲道理 gdb 打断点单步反汇编什么的都挺方便的,而且还可以用 gdbinit 和 pretty printer 扩展.我用 gdb 调程序比我用 vim 写程序还快,虽然这主要是因为我不喜欢 linux 那坨 CUI text editor... |
20 polaa 2018-05-29 09:22:17 +08:00 gdb 的自由度大多了 |
21 liuzhedash 2018-05-29 09:40:36 +08:00 有 gdb 已经很棒棒了,嵌入式开发只会 printf |
22 bfdh 2018-05-29 10:00:28 +08:00 嵌入式环境,一般先看代码,看不出问题加打印,打印不行再 GDB。如果有 coredump 文件,直接 GDB。 |
23 cnmllll 2018-05-29 10:04:23 +08:00 目前的环境只能用 GDB, 其实习惯就好了。比 GDb 更难受的是,远程指挥别人 GDB. |
24 mengzhuo 2018-05-29 10:12:25 +08:00 举手~ Go 也用 gdb 调试,不过是最终手段,一般用日志。 |
25 prolic 2018-05-29 10:15:33 +08:00 需要 attach 和看 core 的情况只能用 gdb 啊 |
26 kylix 2018-05-29 10:22:14 +08:00 有啊,不过很少用,主要还是通过 ide 调用, |
27 lujiajing1126 2018-05-29 10:28:59 +08:00 服务器上调 C / Fortran 程序当然都是 GDB 啊= = |
28 pkookp8 2018-05-29 11:02:26 +08:00 via Android 有 gdb 就不错了 你能想象 64M 内存 8M flash,gdb 都不能跑,flash 又放不下一个 coredump 的设备吗,一跑就 oom 只能 printf 但是编译器神级优化加一个 printf 问题就不出现了 只能看堆,反汇编看出错原因 |
29 USNaWen 2018-05-29 11:24:52 +08:00 头条。 |
30 shijingshijing OP @lujiajing1126 这年头这个论坛上还能看到用 Fortran 的人也是不容易,Ada 了解一下。 |
32 hncqp 2018-05-29 12:54:15 +08:00 via iPhone 不用 gdb 还有啥能用的 |
33 shijingshijing OP @hncqp 不是不用。。。 是想问问都是怎么用的,是敲命令用的多还是在 IDE 里面点点点然后让 IDE 帮你弄这样用的多。我的提问标题写的不准确。。。 |
34 lzhCoooder 2018-05-29 13:21:47 +08:00 还行吧 ide 打断点和 gdb 也没啥区别啊,感觉没麻烦太多 |
35 RqPS6rhmP3Nyn3Tm 2018-05-29 13:22:11 +08:00 via iPhone 我宁可用 print debug 也不用 gdb |
36 hncqp 2018-05-29 13:25:05 +08:00 via iPhone @shijingshijing 线上 core 了的情况基本只能手动敲,没有 ide,其他情况就 printf 吧 |
37 markx 2018-05-29 13:25:38 +08:00 好问题! 我也想知道现在人是怎么用的,难道真的手动插断点?! |
38 scipio 2018-05-29 13:28:46 +08:00 基本每天都在用 |
39 lujiajing1126 2018-05-29 13:32:42 +08:00 |
40 Mirana 2018-05-29 13:37:58 +08:00 c/c++不用 gdb 用啥 |
41 miketeam 2018-05-29 13:41:39 +08:00 via iPhone 所以 iOS 开发的不学 c 语言真是浪费,Xcode 这么牛逼的调试工具 |
42 shijingshijing OP @miketeam vs 的 debug 才叫 nb 呢,特别是调试树、链表这种稍微复杂点的数据结构。vs 现在还能直接调下位机了呢。 |
43 xuchendev 2018-05-29 15:04:00 +08:00 很多,比如我们做图像处理这边,海思平台全是 c,服务器端的 caffe,darknet 也用 gdb 调试啊,很方便。。 |
44 bluefalconjun 2018-05-29 15:24:16 +08:00 嵌入式开发 printf/k gdb 太奢侈了... 只能关键时候用. :( |
45 miketeam 2018-05-29 16:14:28 +08:00 via iPhone vs 能调试 iOS ? |
47 shijingshijing OP @miketeam 看来你还没感受到宇宙第一 IDE 的强大。。。 vs 还能用来做 iOS 开发呢,不是 xamarin,用原生的 c++写 app,还能跨平台做到 iOS 和 Andrpid 兼顾呢。 |
48 Applenice 2018-05-29 16:31:11 +08:00 拿来看 core.....十分爽 |
51 dbow 2018-05-29 18:07:52 +08:00 天天用 |
52 chenxytw 2018-05-29 18:20:04 +08:00 线上环境看 php-fpm 的 coredump 都是 gdb ..... |
53 miketeam 2018-05-29 18:24:56 +08:00 via iPhone 说的原生 cpp 写 iOS,你能打包吗?能调试 UI 吗?能检查内存泄漏吗?能管理证书吗?编译速度有 Xcode 快?原生 cpp 写意思说你所以控件都手撸,先不说项目赶不赶,这个项目 iOS 以后就你一个人维护? |
54 miketeam 2018-05-29 18:26:38 +08:00 via iPhone 如果都能明天我还 windows |
55 bilberry 2018-05-29 20:06:55 +08:00 LLDB |
56 spensersheng 2018-05-30 17:36:40 +08:00 做嵌入式的应该都会用吧,尤其是内存很小的一些特种设备 |