Why is the output of the printf is not show when stepping out the line? But at some point it did print line 16.
c file:
#include<stdio.h> void nextfunc(){ int ctr; for(ctr = 0; ctr<3; ctr++){ printf("print ctr = %d",ctr); } printf("last print"); } void main(){ int x; printf("input x: "); scanf("%d",&x); printf("\nprint 2"); printf("\nprint 3"); nextfunc(); } GDB:
(gdb) break main Breakpoint 1 at 0x8048479: file file5.c, line 14. (gdb) break nextfunc Breakpoint 2 at 0x804843a: file file5.c, line 6. (gdb) run Starting program: /home/charmae/workspace/AVT/file5 Breakpoint 1, main () at file5.c:14 14 printf("input x: "); (gdb) s 15 scanf("%d",&x); (gdb) s input x: 4 16 printf("\nprint 2"); (gdb) s 17 printf("\nprint 3"); (gdb) s print 2 18 nextfunc(); (gdb) s Breakpoint 2, nextfunc () at file5.c:6 6 for(ctr = 0; ctr<3; ctr++){ (gdb) s 7 printf("print ctr = %d",ctr); (gdb) s 6 for(ctr = 0; ctr<3; ctr++){ (gdb) s 7 printf("print ctr = %d",ctr); (gdb) s 6 for(ctr = 0; ctr<3; ctr++){ (gdb) s 7 printf("print ctr = %d",ctr); (gdb) s 6 for(ctr = 0; ctr<3; ctr++){ (gdb) s 9 printf("last print"); (gdb) s 10 } (gdb) s main () at file5.c:19 19 } (gdb) s 0x0014a113 in __libc_start_main () from /lib/i386-linux-gnu/libc.so.6 (gdb) s Single stepping until exit from function __libc_start_main, which has no line number information. print 3print ctr = 0print ctr = 1print ctr = 2last print[Inferior 1 (process 2578) exited with code 012]