From 9ba61c5d3ad064fdd1f430c3f4639bc88c6bab21 Mon Sep 17 00:00:00 2001 From: Michael Chastain Date: Mon, 3 Feb 2003 16:07:31 +0000 Subject: [PATCH] 2003-02-01 Michael Chastain * gdb.base/advance.c (marker1): New marker function. * gdb.base/advance.exp: When the 'advance' command lands on the return breakpoint, it can legitimately stop on either the current line or the next line. Accommodate both outcomes. * gdb.base/until.exp: Likewise. --- gdb/testsuite/ChangeLog | 8 ++++++++ gdb/testsuite/gdb.base/advance.c | 5 +++++ gdb/testsuite/gdb.base/advance.exp | 6 +++++- gdb/testsuite/gdb.base/until.exp | 2 +- 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 82f3843f3ed..5c5ee5b651b 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2003-02-01 Michael Chastain + + * gdb.base/advance.c (marker1): New marker function. + * gdb.base/advance.exp: When the 'advance' command lands on the + return breakpoint, it can legitimately stop on either the + current line or the next line. Accommodate both outcomes. + * gdb.base/until.exp: Likewise. + 2003-02-02 Andrew Cagney 2002-11-10 Jason Molenda (jason-cl@molenda.com): diff --git a/gdb/testsuite/gdb.base/advance.c b/gdb/testsuite/gdb.base/advance.c index 2ae3cc50c4a..8066deec421 100644 --- a/gdb/testsuite/gdb.base/advance.c +++ b/gdb/testsuite/gdb.base/advance.c @@ -29,6 +29,10 @@ int func3 () x = 4; } +void marker1 () +{ +} + int main () { @@ -38,6 +42,7 @@ main () b = 3; /* advance this location */ func (c); /* stop here after leaving current frame */ + marker1 (); /* stop here after leaving current frame */ func3 (); /* break here */ result = bar (b + foo (c)); return 0; /* advance malformed */ diff --git a/gdb/testsuite/gdb.base/advance.exp b/gdb/testsuite/gdb.base/advance.exp index aea5a6d57fc..e5061d8fbf6 100644 --- a/gdb/testsuite/gdb.base/advance.exp +++ b/gdb/testsuite/gdb.base/advance.exp @@ -63,8 +63,12 @@ gdb_test "advance func" \ # Verify that "advance " when funcname is NOT called by the current # frame, stops at the end of the current frame. # +# gdb can legitimately stop on either the current line or the next line, +# depending on whether the machine instruction for 'call' on the current +# line has more instructions after it or not. +# gdb_test "advance func3" \ - "in main.*func \\(c\\).*stop here after leaving current frame..."\ + "(in main|).*(func \\(c\\)|marker1 \\(\\)).*stop here after leaving current frame..."\ "advance function not called by current frame" # break at main again diff --git a/gdb/testsuite/gdb.base/until.exp b/gdb/testsuite/gdb.base/until.exp index 815933279c9..f646c6d36ae 100644 --- a/gdb/testsuite/gdb.base/until.exp +++ b/gdb/testsuite/gdb.base/until.exp @@ -76,6 +76,6 @@ delete_breakpoints # stop at main, the caller, where we put the 'guard' breakpoint. # gdb_test "until marker3" \ - "$hex in main.*argc.*argv.*envp.*at.*${srcfile}:82.*marker2 \\(43\\)." \ + "($hex in |)main.*argc.*argv.*envp.*at.*${srcfile}:(82.*marker2 \\(43\\)|83.*marker3 \\(.stack., .trace.\\))." \ "until func, not called by current frame" -- 2.30.2