首先在使用GDB调试前要将调试信息加入可执行代码中,使用gcc -g [*.c] -o test

如图为两个找出1-100间质数的代码 func1.c和func.c, 

GDB调试器断点问题

其中func1.c结果输出为

GDB调试器断点问题

func.c结果为

GDB调试器断点问题

出现差异的代码在

GDB调试器断点问题GDB调试器断点问题

当我们在GDB调试时,在该行设置断点,然后使用r 与 c命令时会出现如下区别

GDB调试器断点问题GDB调试器断点问题

可以看到第一个在执行c命令后会出现结果1 , 2 ....,第二个则不会,这是因为第一个执行c时从断点继续运行再一次遇到断点,一个循环结束遇到printf("%d\n",i),在该程序中有一个换行符\n,所以在循环结束后会打印出第一次循环的结果,而第二个文件执行一样步骤时遇到的是printf("%d ",i)没有\n,所以循环结束时不输出结果,因此有了如上差异。

相关文章:

  • 2021-10-24
  • 2021-12-24
  • 2021-11-16
  • 2021-04-18
  • 2021-05-10
  • 2021-11-21
  • 2021-04-22
  • 2021-07-09
猜你喜欢
  • 2021-10-01
  • 2021-10-26
  • 2021-07-20
  • 2021-11-17
  • 2021-12-26
  • 2022-01-19
  • 2021-05-07
相关资源
相似解决方案