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

Kevin Buettner
2001-05-23T18:53:00Z

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.)

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.)

* 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 $" {