Linux C编程第三回 - GDB

说起调试,学习的过程,原来真的是很心酸的。

那个时候在大学里边用VC写了个自动机模拟的软件,软件其实也不大,可能也就一两万行,在寝室闭门造车半个月搞出来的。

因为没写过什么程序,就拿着一本VC的书就开始了,当时不知道编译器原来支持那么多调试方法。根本就不晓得原来在断点处可以看到调用栈,可以跟踪变量的值,那会觉得调试找错本来就是自己干的事情,我就到处加log来找错。不过对于锻炼自己的Debug能力还是相当有帮助的。

好了言归正传,继续来讲GDB,它是用来调试程序的,调试我们经常用到的功能他都具备。

启动GDB很简单,gdb三个字母就够了

---gdb

然后加载我们需要调试的运行程序,对了平时我们的程序是不包含符号表的,所以如果需要调试需要在编译的时候加上-g选项。---gcc -g -o hello hello.c

---file hello

1.设置断点,包括代码行断点,变量断点,条件断点等

---break n 可以再第n行设置断点

---info break 可以查看当前所有断点

---delete n 可以用来删除断点

---watch i 可以用来设置变量断点,其中i是变量名

---在使用了file hello之后,使用run可以让程序运行起来

---run

2.断点后的状态查看

---info local 可以显示所有局部变量的值

---where/backtrace 可以显示调用栈

---display i 可以显示变量i的值

---whatis可以显示变量类型

---print i 可以打印出变量的值

3.继续调试

---continue 继续到下一个断点再停下来

---next 下一行调试

---step 下一行调试,遇到函数进入

 

常用调试命令可能也就这么多,大型程序,我觉得gdb还是不得行,至少我不知道他能不能远程调试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值