Re: [PATCH RFA] gdb.base/finish.exp: Allow finish to stop on call

Fernando Nasser
2001-05-23T19:06:00Z

Kevin Buettner wrote:
>
> On May 23, 8:18pm, Fernando Nasser wrote:
>
> > Your second pattern needs a small improvement though. As we are
> > returning to the middle of that source line, the information printed by
> > GDB will have the address (PC) as well. We must make sure that we test
> > for that so we can differentiate between returning to the beginning of
> > the calling line (wrong) and returning to after where the assembler jump
> > to subroutine was (right). You can test for that without binding to a
> > specific PC value -- there are several examples around.
> >
> > After making this change, and testing that it works, of course, you can
> > commit your patch. Please post the final version for the records.
>
> The patch you refer to has already been committed. (Michael S. approved
> it.)
>

Michael got confused, he can checkin anywhere but can only approve
patches to gdb.trace and gdb.threads (for now, at least). But no big
deal, this is close to an obvious fix.

> I do agree that it is worthwhile to make the pattern more restrictive
> and have just committed the patch below. I've tested it on the IA-64
> machine where I was previously seeing a failure. (It still works as
> expected.)
>

Yes! That is what I meant.

Thank you very much.

> * gdb.base/finish.exp (finish_void): Revise pattern for
> stopping on the call statement to not permit stopping at
> the start of the instructions comprising the call sequence.
>
> Index: testsuite/gdb.base/finish.exp
> ===================================================================
> RCS file: /cvs/src/src/gdb/testsuite/gdb.base/finish.exp,v
> retrieving revision 1.4
> diff -u -p -r1.4 finish.exp
> --- finish.exp 2001/05/22 00:25:27 1.4
> +++ finish.exp 2001/05/24 00:59:25
> @@ -85,7 +85,7 @@ proc finish_void { } {
> -re ".*void_checkpoint.*$gdb_prompt $" {
> pass "finish from void_func"
> }
> - -re ".*call to void_func.*$gdb_prompt $" {
> + -re "0x\[0-9a-fA-F\]+ in main.*call to void_func.*$gdb_prompt $" {
> pass "finish from void_func"
> }
> -re ".*$gdb_prompt $" {

--
Fernando Nasser
Red Hat Canada Ltd. E-Mail: fnasser@redhat.com
2323 Yonge Street, Suite #300
Toronto, Ontario M4P 2C9