Suppose I have a loop that will iterate 100 times and I want to skip 50 iterations but I want to continue pressing next
from there on to see each line.
I don't want to set a breakpoint after the loop, because this way I'll skip all iterations and not only the number I intend to.
Is there a way to do this in GDB? How?
P.S. I don't want keep pressing next
from start to finish. It's time consuming...
The optional argument ignore-count allows you to specify a further number of times to ignore a breakpoint at this location; its effect is like that of ignore (see section Break conditions). The argument ignore-count is meaningful only when your program stopped due to a breakpoint.
Description. This command jumps the program counter to the specified location. The debugger resumes program execution at that point unless it encounters a breakpoint there.
Diagnose the infinite loop. Start calc from within gdb using the run command. It will go into an infinite loop. Press Ctrl-C (like before) to stop your program.
Set a breakpoint in the loop and then call c 50 to continue 50 times
Debugging with GDB
5.2 Continuing and stepping
continue [ignore-count]
c [ignore-count]
fg [ignore-count]
Resume program execution, at the address where your program last stopped; any breakpoints set at that address are bypassed. The optional argument ignore-count allows you to specify a further number of times to ignore a breakpoint at this location; its effect is like that of ignore (see section Break conditions). The argument ignore-count is meaningful only when your program stopped due to a breakpoint. At other times, the argument to continue is ignored.
You could use conditional break points
break <lineno> if i > 50
where i
is the loop index
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With