GDB调试器断点问题

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

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

GDB调试器断点问题_第1张图片

其中func1.c结果输出为

func.c结果为

出现差异的代码在

GDB调试器断点问题_第2张图片GDB调试器断点问题_第3张图片

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

GDB调试器断点问题_第4张图片GDB调试器断点问题_第5张图片

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

你可能感兴趣的:(GDB调试器断点问题)