当前第2页 返回上一页
1.Num 列代表断点编号,该编号可以作为 delete/enalbe/disable 等控制断点命令的参数
2.Type 列代表断点类型,一般为 breakpoint
3.Disp 列代表断点被命中后,该断点保留(keep)、删除(del)还是关闭(dis)
4.Enb 列代表该断点是 enable(y) 还是 disable(n)
5.Address 列代表该断点处虚拟内存的地址
6.What 列代表该断点在源文件中的信息
1 2 3 4 5 6 7 | (gdb) d 2
(gdb) info breakpoints
Num Type Disp Enb Address What
1 breakpoint keep y 0x00000000004004fa in main at buging.c:8
|
关闭和启用断点:
有时候,我们会遇到这种情况:有些断点可能暂时不用但又不想删除,那么可以disable.
GDB单步调试
以本文开头的buging.c文件为例,进行单步调试。
1 2 3 4 5 6 7 8 | [yqtao@localhost linux]$ gdb buging
(gdb) info breakpoints
(gdb) run
Breakpoint 1, main () at buging.c:9
9 int res=getSum(100);
|
注意:我们要进入函数要是用step(s),而单步执行next(n),next是不进入函数内部的,要区分两者的关系。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | (gdb) step
getSum (n=100) at buging.c:4
4 for (i=1;i<=n;i++)
(gdb) l
1 # include <stdio.h>
2 int getSum(int n) {
3 int sum=0,i;
4 for (i=1;i<=n;i++)
5 sum+=i;
6 return sum;
7 }
8 int main(){
9 int res=getSum(100);
10 printf( "1+2+...+100=%d\n" ,res);
(gdb) s
5 sum+=i;
(gdb) p sum
$1 = 4195633
(gdb) info locals
sum = 4195635
i = 3
|
其余的一些命令:
finish
执行程序到当前函数结束
continue
执行程序到下个断点
until
until N,执行程序到源代码的某一行
相关推荐:
用GDB调试nginx
基于Linux调试工具strace与gdb的常用命令总结_PHP教程
Linux+Eclipse+GDB调试PostgreSQL源码
以上就是Linux调试工具GDB使用教程的详细内容,更多文章请关注木庄网络博客!
返回前面的内容
相关阅读 >>
如何切换启动模板的某个版本为该模板的默认版本
rm -rf /*什么意思
如何在Linux上编译和运行c和c++程序
Linux下查看目录的命令是什么
Linux如何删除文件夹
Linux hosts文件如何修改
Linux如何查看端口是否开放?
Linux在如何目录下创建文件
Linux中..是什么意思
Linux vps是什么意思?
更多相关阅读请进入《Linux》频道 >>
转载请注明出处:木庄网络博客 » Linux调试工具GDB使用教程