Linux-gdb调试

gdb.c文件

#include <stdio.h>
int func(int n)
{
    int sum=0,i;
    for(i=0; i<n; i++){
        sum += i;
    }
    return sum;
}

int main(void)
{
    int i;
    long result=0;
    for(i=1; i<=100; i++){
        result +=i;
    }
    printf("result[1-100] = %ld \n", result);
    printf("result[1-250] = %d \n", func(250));
}

1、编译生成执行文件:

$ gcc -g gdb.c -o testgdb     //使用gdb调试

结果:
这里写图片描述

2、启动gdb

$ gdb testgdb

结果:
这里写图片描述

3、设置断点(在特定的行或者某个函数)

break 16

结果:
这里写图片描述

break func

结果:
这里写图片描述

4、查看断点信息

info break

结果:
这里写图片描述

5、运行程序

r(run的简写)

结果:
这里写图片描述
程序在第一个断点处停住。

6、继续执行程序

n(next的简写)

结果:
这里写图片描述

7、打印变量i

p i

结果:
这里写图片描述

8、查看函数堆栈

bt

结果:
这里写图片描述

9、退出函数

finish

结果:
这里写图片描述

10、程序继续运行

c(Continuing的简写)

结果:
这里写图片描述
注:(process 271) exited with code 027 程序退出,调试结束。

11、退出gdb

q

猜你喜欢

转载自blog.csdn.net/wake_me_up123/article/details/78711508