This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] testsuite: inline-cmds.exp: adjust checks with 'finish' command
- From: Edjunior Barbosa Machado <emachado at linux dot vnet dot ibm dot com>
- To: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- Cc: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Mon, 02 May 2011 11:36:12 -0300
- Subject: Re: [PATCH] testsuite: inline-cmds.exp: adjust checks with 'finish' command
- References: <4DB7BAEF.3070303@linux.vnet.ibm.com> <20110430145414.GA8989@host1.jankratochvil.net>
Thanks Jan for the feedback, and sorry about the confusion with the mail format, I hope it works better now. Here is the updated patch.
Thanks,
--
Edjunior
gdb/testsuite/
2011-05-02 Edjunior Machado <emachado@linux.vnet.ibm.com>
* gdb.opt/inline-cmds.exp: Adjust checks with "finish" command to
accept to show the caller line again as well as the line after.
diff --git a/gdb/testsuite/gdb.opt/inline-cmds.exp b/gdb/testsuite/gdb.opt/inline-cmds.exp
index cde86f5..cb5f96f 100644
--- a/gdb/testsuite/gdb.opt/inline-cmds.exp
+++ b/gdb/testsuite/gdb.opt/inline-cmds.exp
@@ -263,7 +263,20 @@ gdb_continue_to_breakpoint "finish into func1"
gdb_test "next" ".*marker \\\(\\\);" "next to finish marker"
gdb_test "step" ".*set breakpoint 2 here.*" "step into finish marker"
-gdb_test "finish" "func1 \\\(\\\);" "finish from marker to func1"
+
+# Some architectures will have one or more instructions after
+# the call instruction which still are part of the call sequence,
+# so it should be expected to return to the caller line after issue
+# a 'finish' command.
+gdb_test_multiple "finish" "finish from marker" {
+ -re "func1 \\\(\\\);.*\r\n$gdb_prompt $" {
+ pass "finish from marker to func1"
+ }
+ -re "marker \\\(\\\);.*\r\n$gdb_prompt $" {
+ pass "finish from marker"
+ gdb_test "step" "func1 \\\(\\\);.*" "step after marker to reach func1"
+ }
+}
gdb_test "step" "bar \\\(\\\);" "step into func1 for finish"
gdb_test "finish" "func3 \\\(\\\);" "finish from func1 to func3"
@@ -273,7 +286,15 @@ set line6 [gdb_get_line_number "set breakpoint 6 here"]
gdb_breakpoint $line6
gdb_continue_to_breakpoint "before the outer_inline call"
gdb_test "step" "marker \\\(\\\) at .*" "reach 1 the outer_inline call"
-gdb_test "finish" "main \\\(\\\) at .*outer_inline2 \\\(\\\);" "reach outer_inline2"
+gdb_test_multiple "finish" "finish from marker" {
+ -re "main \\\(\\\) at .*outer_inline2 \\\(\\\);.*\r\n$gdb_prompt $" {
+ pass "reach outer_inline2"
+ }
+ -re "main \\\(\\\) at .*marker \\\(\\\);.*\r\n$gdb_prompt $" {
+ pass "finish from marker"
+ gdb_test "step" "outer_inline2 \\\(\\\);.*" "step after marker to reach outer_inline2"
+ }
+}
gdb_test "bt" "#0 main.*" "backtrace at main of outer_inline"
gdb_test "step" "outer_inline2 \\\(\\\) at .*" "enter outer_inline2"
gdb_test "bt" "#0 outer_inline2.*#1 main.*" "backtrace at outer_inline2"