public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Simon Marchi <simon.marchi@polymtl.ca>
To: gdb-patches@sourceware.org
Cc: Simon Marchi <simon.marchi@polymtl.ca>
Subject: [PATCH 07/14] gdb/testsuite/gdb.base/break.exp: split test_break_user_call
Date: Wed, 23 Nov 2022 13:39:52 -0500	[thread overview]
Message-ID: <20221123183959.2476477-8-simon.marchi@polymtl.ca> (raw)
In-Reply-To: <20221123183959.2476477-1-simon.marchi@polymtl.ca>

Change-Id: I9151ce9db9435722b758f41c6606b461bf15f320
---
 gdb/testsuite/gdb.base/break.exp | 54 +++++++++++++++++++-------------
 1 file changed, 32 insertions(+), 22 deletions(-)

diff --git a/gdb/testsuite/gdb.base/break.exp b/gdb/testsuite/gdb.base/break.exp
index 1f6c620ee0cb..d9cfeb9b21f0 100644
--- a/gdb/testsuite/gdb.base/break.exp
+++ b/gdb/testsuite/gdb.base/break.exp
@@ -626,34 +626,44 @@ with_test_prefix "set line breakpoint via convenience variable" {
 }
 
 # Verify that we can set and trigger a breakpoint in a user-called function.
-#
-gdb_test "break marker2" \
-    "Breakpoint (\[0-9\]*) at .*, line $bp_location8.*" \
-    "set breakpoint on to-be-called function"
-
-gdb_test "print marker2(99)" \
-    "The program being debugged stopped while in a function called from GDB.\r\nEvaluation of the expression containing the function\r\n.[func marker2]. will be abandoned.\r\nWhen the function is done executing, GDB will silently stop.*" \
-    "hit breakpoint on called function"
 
-# As long as we're stopped (breakpointed) in a called function,
-# verify that we can successfully backtrace & such from here.
-gdb_test "bt" \
-    "#0\[ \t\]*($hex in )?marker2.*:$bp_location8\r\n#1\[ \t\]*<function called from gdb>.*" \
-    "backtrace while in called function"
+proc_with_prefix test_break_user_call {} {
+    clean_restart break
 
-# Return from the called function.  For remote targets, it's important to do
-# this before runto_main, which otherwise may silently stop on the dummy
-# breakpoint inserted by GDB at the program's entry point.
-#
-gdb_test_multiple "finish" "finish from called function" {
-    -re "Run till exit from .*marker2.* at .*$bp_location8\r\n.*function called from gdb.*$gdb_prompt $" {
-	pass "finish from called function"
+    if { ![runto_main] } {
+	return
     }
-    -re "Run till exit from .*marker2.* at .*$bp_location8\r\n.*Value returned.*$gdb_prompt $" {
-	pass "finish from called function"
+
+    gdb_test "break marker2" \
+	"Breakpoint (\[0-9\]*) at .*, line $::bp_location8.*" \
+	"set breakpoint on to-be-called function"
+
+    gdb_test "print marker2(99)" \
+	"The program being debugged stopped while in a function called from GDB.\r\nEvaluation of the expression containing the function\r\n.[func marker2]. will be abandoned.\r\nWhen the function is done executing, GDB will silently stop.*" \
+	"hit breakpoint on called function"
+
+    # As long as we're stopped (breakpointed) in a called function,
+    # verify that we can successfully backtrace & such from here.
+    gdb_test "bt" \
+	"#0\[ \t\]*($::hex in )?marker2.*:$::bp_location8\r\n#1\[ \t\]*<function called from gdb>.*" \
+	"backtrace while in called function"
+
+    # Return from the called function.  For remote targets, it's important to do
+    # this before runto_main, which otherwise may silently stop on the dummy
+    # breakpoint inserted by GDB at the program's entry point.
+    #
+    gdb_test_multiple "finish" "finish from called function" {
+	-re "Run till exit from .*marker2.* at .*$::bp_location8\r\n.*function called from gdb.*$::gdb_prompt $" {
+	    pass "finish from called function"
+	}
+	-re "Run till exit from .*marker2.* at .*$::bp_location8\r\n.*Value returned.*$::gdb_prompt $" {
+	    pass "finish from called function"
+	}
     }
 }
 
+test_break_user_call
+
 # Verify that GDB responds gracefully to a "finish" command with
 # arguments.
 
-- 
2.38.1


  parent reply	other threads:[~2022-11-23 18:58 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-23 18:39 [PATCH 00/14] Break up gdb.base/break.exp in multiple procs Simon Marchi
2022-11-23 18:39 ` [PATCH 01/14] gdb/testsuite/gdb.base/break.exp: split test_break_commands_clear Simon Marchi
2022-11-23 18:39 ` [PATCH 02/14] gdb/testsuite/gdb.base/break.exp: split test_break_file_line_convenience_var Simon Marchi
2022-11-23 18:39 ` [PATCH 03/14] gdb/testsuite/gdb.base/break.exp: split test_rbreak_shlib Simon Marchi
2022-11-23 18:39 ` [PATCH 04/14] gdb/testsuite/gdb.base/break.exp: split test_break_optimized_prologue Simon Marchi
2022-11-23 18:39 ` [PATCH 05/14] gdb/testsuite/gdb.base/break.exp: use proc_with_prefix for test_next_with_recursion Simon Marchi
2022-11-23 18:39 ` [PATCH 06/14] gdb/testsuite/gdb.base/break.exp: split test_finish_arguments Simon Marchi
2022-11-23 18:39 ` Simon Marchi [this message]
2022-11-23 18:39 ` [PATCH 08/14] gdb/testsuite/gdb.base/break.exp: split test_break_line_convenience_var Simon Marchi
2022-11-23 18:39 ` [PATCH 09/14] gdb/testsuite/gdb.base/break.exp: split test_break_silent_and_more Simon Marchi
2022-11-23 18:39 ` [PATCH 10/14] gdb/testsuite/gdb.base/break.exp: split test_break_default Simon Marchi
2022-11-23 18:39 ` [PATCH 11/14] gdb/testsuite/gdb.base/break.exp: split test_break_nonexistent_line Simon Marchi
2022-11-23 18:39 ` [PATCH 12/14] gdb/testsuite/gdb.base/break.exp: split test_no_break_on_catchpoint Simon Marchi
2022-11-23 18:39 ` [PATCH 13/14] gdb/testsuite/gdb.base/break.exp: split test_tbreak Simon Marchi
2022-11-23 18:39 ` [PATCH 14/14] gdb/testsuite/gdb.base/break.exp: split test_break Simon Marchi
2022-11-24  3:03 ` [PATCH 00/14] Break up gdb.base/break.exp in multiple procs Kevin Buettner
2022-11-24 15:14   ` Simon Marchi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221123183959.2476477-8-simon.marchi@polymtl.ca \
    --to=simon.marchi@polymtl.ca \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).