GDB调试器断点问题

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

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

1-100

其中func1.c结果输出为

func.c结果为

出现差异的代码在

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

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

猜你喜欢

转载自blog.csdn.net/qq_42720695/article/details/81127577