gdb调试

1.使用命令:gcc demo.c -o app -g 生成app

2.gdb app

3.list命令,列出代码,后面可以使用l代替list

 

4.输入b + 行号,在对应的行号设置断点,b + 行号 if 。。。设置条件断点

5.info b 可以查看断点信息

 

 

(gdb) list
1    #include <stdio.h>
2    
3    int add(int a,int b)
4    {
5        return a + b;
6    }
7    
8    void main()
9    {
10        int i;
(gdb) l
11        int sum[10] = {0};
12        int arr1[10] = {11,22,33,44,55,66,77,88,99,100};
13        int arr2[10] = {1,2,3,4,5,6,7,8,9,10};
14        
15        for ( i = 0; i < 10; i ++ )
16        {
17            sum[i] = add(arr1[i],arr2[i]);
18        }
19        
20    }(gdb) l
Line number 21 out of range; demo1.c has 20 lines.
(gdb) b 5
Breakpoint 1 at 0x400550: file demo1.c, line 5.
(gdb) b 17 if i = 5
Breakpoint 2 at 0x40063a: file demo1.c, line 17.
(gdb) info b
Num     Type           Disp Enb Address            What
1       breakpoint     keep y   0x0000000000400550 in add at demo1.c:5
2       breakpoint     keep y   0x000000000040063a in main at demo1.c:17
    stop only if i = 5
(gdb) 

 

6.可以取消断点 disable + 断点号,或delete + 断点号

7.命令run,让程序跑起来,在断点处停下

8.命令s,(step)单步执行,p + 变量名,打印变量的值

9.display + 变量名 ,每次都显示变量的值

 10.ptype 变量名——查看变量类型
 
 11.bt  查看当前程序函数栈帧使用基本情况
   函数的栈帧保存局部变量和临时值,形参,与局部变量等价。
 
12. info locals 查看当前栈帧上变量的存储值。
 
 13.frame 栈帧编号查看变量的值
 
 s——step
 n——next
14. finish 终止当前函数
15.continue 结束当前断点调试
16.
 p *数组名@10 列出数组前10个元素值
 p 数组名[n]@m 从下标n开始向后打印m个元素。

 

转载于:https://www.cnblogs.com/xiangtingshen/p/10422902.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值