Linux下gdb调试run,next,continue与step命令的区别

一. Linux下gdb调试run,next,continue与step命令的区别

1. gdb调试中,常用的调试命令有run,next,continue,step命令。都有向下执行程序的功能。但是,它们在调试中所实现的调试功能还是有区别的。
2. 下面说明一下以上调试命令的区别。这里使用一段代码,对start,run,next,continue与step调试命令的使用进行说明。代码如下所示:
#include <stdio.h>
#include <string.h>

void fun(int*a, int* b);

int main(void)
{
   int a = 1;
   int b = 2;
   fun(&a, &b);
   printf("*****a: %d, b: %d\n", a, b);

   return 0;
}

void fun(int* a, int* b)
{
   int tmp = 0;
   tmp = *a;
   *a = *b;
   *b = tmp;
}`
(1) start 命令

start 命令在开启 gdb 调试之后使用,即在输入“gdb 目标程序”命令后使用。当在调试开始时,需要进行单步调试时,可以使用 start 命令开始运行程序。start 命令使用如下所示:

在这里插入图片描述

(2) run 命令

当在调试时需要程序自动运行到程序结束。而在这个时候可以使用 run 命令。在使用 run 命令之前,常常会在程序某个部分设置断点。如果程序已经运行到中间某个部分,这时如果执行 run 命令,则程序会从主函数 main( ) 重新开始执行。使用方法如下所示:

在这里插入图片描述

(3) next 命令

next 命令在调试中,一般用于程序单步调试。但是 next 命令在遇到函数调用时,不会进入函数内部执行,而是直接返回调用函数的返回。next 命令一般可以在 start 命令之后使用。

(4) continue 命令

continue 命令简写 c。在调试中使用时可以直接输入 c。continue 命令功能是从当前位置开始连续而非单步执行程序。当碰到断点处( b 命令所打的断点),如下所示:

在这里插入图片描述

(5) step 命令

step 命令功能是执行下一行语句,如果有函数调用则进入到函数中执行。如下所示:

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值