Linux下C/C++调试工具GDB

实例调试程序 main.c :
#include <stdio.h>

int add_range(int low, int high)
{
int i, sum;
for (i = low; i <= high; i++)
sum = sum + i;
return sum;
}

int main(void)
{
int result[100];
result[0] = add_range(1, 10);
result[1] = add_range(1, 100);
printf("result[0]=%d\nresult[1]=%d\n", result[0], result[1]);
return 0;
}

以上函数add_range功能为从low加到high,基本调试步骤:
1.编译
$ gcc -g main.c -o main
2.调试
$ gdb main
3.帮助
(gdb) help
4.从第几行列出代码
(gdb) list 10
(gdb) l 10
5.直接回车重复上一条命令
6.开始调试,gdb会停在main()函数变量定义后第一条语句
(gdb) start
7.执行下一条(不进入函数),执行到printf语句时会直接输出到终端
(gdb) next
(gdb) n
8.步进,进入函数
(gdb) step
(gdb) s
9.查看栈帧
(gdb) backtrace
(gdb) bt
10.选择栈帧
(gdb)frame 帧编号
(gdb)f 帧编号
11..显示当前栈帧局部变量
(gdb)info locals
(gdb)i locals
12.打印变量
(gdb)print 变量
13.给变量赋值
(gdb)set var 变量=值
14.运行结束
(gdb) finish
15.退出
(gdb) quit

断点调试:
1.每次运行都显示变量
(gdb) display 参数
2.取消display
(gdb) undisplay 参数
3.设置断电
(gdb)break 行数
(gdb)b 行数
(gdb)b 文件名:行数   #在多文件情况下
4.运行至断点
(gdb)continue
(gdb)c
5.显示所有断点
(gdb) info breakpoints
(gdb) i breakpoints
6.删除某个断点
(gdb) delete breakpoints 断点号
7.条件断点
(gdb) break 断点行数 if 变量 != 0
8.重新开始运行到断点
(gdb) run
(gdb) r
9.禁用断点
(gdb)disable breakpoints 断点号
10.启用断点
(gdb)enable 断点号

未完待续。。。

 

转载于:https://www.cnblogs.com/istrong/archive/2012/08/28/gdb.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值