gdb命令调试c程序

43 篇文章 19 订阅

    一般开发c语言程序,都是在ide中编码,调试也是使用集成环境,有时候,我们的程序是在文本编辑器中编写的,这时候可能使用gcc编译,然后运行可执行程序。遇到需要调试的场景,我们就需要借助gdb命令了。

    gdb调试,不仅局限于在linux上使用,只要机器上有gdb命令,在windows下也可以进行调试。我的机器上安装了一个树莓派的perl,使用strawberry-perl-5.32.0-64bit.msi进行的安装,他自带了一个c语言编译运行的相关命令。所以可以在windows下进行gdb调试。

    gdb调试需要进行gcc编译的时候加上-g参数。在运行程序的时候,不再直接运行,而是加上gdb命令:

    准备一个c程序:

    swapdemo.c

#include <stdio.h>
void swap(int *a,int *b)
{
  int tmp = *a;
  *a = *b;
  *b = tmp;
}
int main()
{
  int a = 3,b = 5;
  printf("before: a = %d,b = %d\n",a,b);
  swap(&a,&b);
  printf("after : a = %d,b = %d\n",a,b);
  return 0;
}

    编译

Administrator@pail-pc ~/gdbdemo
$ gcc -g swapdemo.c

Administrator@pail-pc ~/gdbdemo
$ ls
a.exe  maptest.cpp  maptest.exe  swapdemo.c

    gdb调试:

    gdb a.exe

    

     进入了gdb调试命令行,我们可以进行如下的相关操作: 

命令功能备注
run直接运行程序简写r
start开始调试,默认进入main函数第一行作为断点简写st,与step的s作区分
next下一行简写n
step单步调试,一般用于进入方法体内部简写s
list查看代码简写l
print打印变量

简写p 

backtrace查看栈帧简写bt
frame切换栈帧,后面跟栈序号,通常与backtrace配合使用,先查看,再切换简写f
quit退出简写q

 

    调试命令截图:

    run:

    

    start:

    

    next:

    

    step:

    

    list:

    

    print:

    

    backtrace && frame:

    

    quit :

    

    还有一些重要的命令,比如设置断点break命令,它后面跟行号作为参数,简写b。继续 continue命令,运行程序到下一个断点,简写c。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

luffy5459

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

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

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

打赏作者

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

抵扣说明:

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

余额充值