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 1
|
4
bombless 2018-05-28 22:17:21 +08:00 via Android 1
……看你习惯什么工作流了。你要是调试 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
cholerae 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 2
有 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
做嵌入式的应该都会用吧,尤其是内存很小的一些特种设备
|