This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Behavior of 'until' command


On Wed, Nov 13, 2002 at 02:19:35PM -0500, Elena Zannoni wrote:
> 
> The documenation says that 'until' does this:
> 
> "@item until
> Continue running until a source line past the current line, in the
> current stack frame, is reached. [...]@code{until} always stops your
> program if it attempts to exit the current stack frame.
> [...]
> 
> @item until @var{location} 
> Continue running your program until either the specified location is
> reached, or the current stack frame returns.  @var{location} is any of
> the forms of argument acceptable to @code{break}.  This form of the
> command uses breakpoints, and hence is quicker than @code{until}
> without an argument."
> 
> Note the 'will not exit the current stak frame' business.
> 
> However, nobody forbids you from saying "until foo" (since that's an
> OK argument for break as well).  And foo can be any function, called
> by the current frame or not.
> 
> It is not clear to me what the doco describes as gdb's
> behavior. Concrete example below:
> 
> 1	static int x;
> 2	
> 3	int fun ()
> 4	{
> 5	   x = 1;
> 6	}
> 7	
> 8	int fun2 ()
> 9	{
> 10	   x = 4;
> 11	}
> 12	
> 13	void foo()
> 14	{
> 15	  x = x + 5;
> 16	  fun2 ();
> 17	}
> 18	int main (int ac, char **av)
> 19	{
> 20	  x = 3;
> 21	  foo ();
> 22	  fun ();
> 23	  x = 3;
> 24	  return 0;
> 25	}
> 
> 
> If I am in 'foo' at line 15,and enter the command 'until fun', I
> would expect to end up ... where? At line 22?  Or should I end up at
> line 5? Right now gdb ends up at 22, i.e. doesn't enter 'fun'. I think
> it is consistent with the doco.
> 
> Similarly from foo line 15 where should 'until fun2' take me? Inside
> fun2, at line 10? Or at line 16? Currently I end up at line 22 which
> is in main. This seems clearly wrong either way.
> 
> Any thoughts?

Your reading sounds right to me.  If you look at the output of 'set
debug target 1' in your example, we set and hit the breakpoint in fun2
and then decide to continue for some reason - that's got to be a bug.

If you have a chance this would make a great testcase.

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]