建立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