Is there a gdb command to finish a loop construct?

WilliamKF picture WilliamKF · Feb 1, 2013 · Viewed 27.5k times · Source

In gdb, I have the finish command to easily finish execution of a function frame, often when walking through code in the debugger, after looking at a few iterations of a loop, I'd like to finish the loop and continue walking after it. Presently, I do this by setting a break point on the first line after the loop and continue, however, it would be really handy if there was a simple gdb command to have the same effect of this but not require a break point to be set and later cleared.

Is there anyway in gdb to finish execution of the current loop being executed?

Answer

Employed Russian picture Employed Russian · Feb 1, 2013

Is there a gdb command to finish a loop construct?

Execute until on the last line of the loop, or until NNN where NNN is the last line of the loop.

(gdb) help until
Execute until the program reaches a source line greater than the current
or a specified location (same args as break command) within the current frame.

not require a break point to be set and later cleared.

Temporary breakpoints automatically clear themselves:

(gdb) help tbreak
Set a temporary breakpoint.
Like "break" except the breakpoint is only temporary,
so it will be deleted when hit.  Equivalent to "break" followed
by using "enable delete" on the breakpoint number.