当前位置:   article > 正文

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

gdb run

一. 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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
(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 命令功能是执行下一行语句,如果有函数调用则进入到函数中执行。如下所示:

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/804687
推荐阅读
相关标签
  

闽ICP备14008679号