linux gdb调式入门(break,continue,step finnish,run,watch,bt frame),这篇就够了

建立gdb.c

 1 #include<stdio.h>
  2 
  3 int fun(int n)
  4 {
  5     int sum = 0;
  6     int i = 0;
  7     for(i=0;i<n;i++)
  8     {
  9         sum =sum + n;
 10     }
 11     return sum;
 12 }
 13 
 14 int main()
 15 {
 16     int j,result=0;
 17     for(j=0;j<20;j++)
 18     {                                                                                                           
 19         result = result + j;
 20     } 
 21     int sum1=fun(10);
 22     printf("sum1=%d\n",sum1);
 23     printf("result=%d\n",result);
 24     return 0;
 25 }

1,gdb的帮助文档和table键的使用:

2.查看代码list(l)

3,程序的gdb运行和挂载gdb:

条件断点的使用:

 4,断点的clear,delete,enable和disable的使用:

 

6,watch,rwatch,awatch的使用:

建立gdb.cpp

 #include<iostream>

 #define BOOL int
 #define FLASE 0
 #define TRUE 1
 
 using namespace std;
 
 int main()
 {
    int i;
    BOOL flag;
    for(i=0;i<10;i++)
    {
        if(flag=(i%2) == FLASE)
        {
            cout << "double" << endl;
        }
        else
        {                                                                                                        
            cout << "single" << endl;
        }
    }
    return 0;
}

7, 输出重定向和set argv的使用:

 

8,step(s),finish的使用,s进入函数,finish结束函数

9 bt frame的使用:

10,程序变量的打印,全局变量和局部变量:

 #include<stdio.h>                                                                                                                    
  2 
  3 int g_num = 99;
  4 int fun_num(int fun_num)
  5 {
  6     return fun_num;
  7 }
  8 
  9 static int st_num = 100;
 10 
 11 int main()
 12 {
 13     int s_num = 22;
 14     int d_num = fun_num(88);
 15 
 16 
 17 }

打印格式总结:

gdb 打印泛型指针变量:

int sdk_get_cpld(u_int uiLogicPort, u_int ulCmd, void *pVal)
{
    int iRet = read_cpld_reg(uiCpldAddr,(unsigned short *)pVal, 1);
    return iRet;
}

(gdb) p  *(unsigned short *)pVal 
$5 = 9984 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌上花开缓缓归以

你的鼓励将是我创作的最大动力,

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值