From: Simon Marchi <simon.marchi@polymtl.ca>
To: gdb-patches@sourceware.org
Cc: Simon Marchi <simon.marchi@polymtl.ca>
Subject: [PATCH 04/14] gdb/testsuite/gdb.base/break.exp: split test_break_optimized_prologue
Date: Wed, 23 Nov 2022 13:39:49 -0500 [thread overview]
Message-ID: <20221123183959.2476477-5-simon.marchi@polymtl.ca> (raw)
In-Reply-To: <20221123183959.2476477-1-simon.marchi@polymtl.ca>
Change-Id: Ibf17033c8ce72aa5cfe1b739be2902e84a5e945d
---
gdb/testsuite/gdb.base/break.exp | 99 ++++++++++++++++----------------
1 file changed, 48 insertions(+), 51 deletions(-)
diff --git a/gdb/testsuite/gdb.base/break.exp b/gdb/testsuite/gdb.base/break.exp
index a9728798fab9..7e410b4adeec 100644
--- a/gdb/testsuite/gdb.base/break.exp
+++ b/gdb/testsuite/gdb.base/break.exp
@@ -773,68 +773,65 @@ test_next_with_recursion
# build a new file with optimization enabled so that we can try breakpoints
# on targets with optimized prologues
-if { [prepare_for_testing "failed to prepare" "breako2" {break.c break1.c} {debug nowarnings optimize=-O2}] } {
+if { [build_executable "failed to prepare" "breako2" {break.c break1.c} {debug nowarnings optimize=-O2}] } {
return -1
}
-#
-# test break at function
-#
-gdb_test "break -q main" \
- "Breakpoint.*at.* file .*, line.*" \
- "breakpoint function, optimized file"
-
-#
-# test break at function
-#
-gdb_test "break marker4" \
- "Breakpoint.*at.* file .*$srcfile1, line.*" \
- "breakpoint small function, optimized file"
-
-#
-# run until the breakpoint at main is hit. For non-stubs-using targets.
-#
-gdb_run_cmd
-
-set test "run until function breakpoint, optimized file"
-gdb_test_multiple "" $test {
- -re "Breakpoint \[0-9\]+,.*main .*argc.*argv.* at .*$srcfile:$bp_location6.*$bp_location6\[\t \]+if .argc.* \{.*$gdb_prompt $" {
- pass $test
- }
- -re "Breakpoint \[0-9\]+,.*main .*argc.*argv.* at .*$gdb_prompt $" {
- pass "$test (code motion)"
- }
-}
+proc_with_prefix test_break_optimized_prologue {} {
+ clean_restart breako2
-#
-# run until the breakpoint at a small function
-#
+ # test break at function
+ gdb_test "break -q main" \
+ "Breakpoint.*at.* file .*, line.*" \
+ "breakpoint function, optimized file"
-#
-# Add a second pass pattern. The behavior differs here between stabs
-# and dwarf for one-line functions. Stabs preserves two line symbols
-# (one before the prologue and one after) with the same line number,
-# but dwarf regards these as duplicates and discards one of them.
-# Therefore the address after the prologue (where the breakpoint is)
-# has no exactly matching line symbol, and GDB reports the breakpoint
-# as if it were in the middle of a line rather than at the beginning.
+ # test break at function
+ gdb_test "break marker4" \
+ "Breakpoint.*at.* file .*$::srcfile1, line.*" \
+ "breakpoint small function, optimized file"
-set bp_location14 [gdb_get_line_number "set breakpoint 14 here" $srcfile1]
+ # run until the breakpoint at main is hit. For non-stubs-using targets.
+ gdb_run_cmd
-gdb_test_multiple "continue" \
- "run until breakpoint set at small function, optimized file" {
- -re "Breakpoint $decimal, marker4 \\(d=(d@entry=)?177601976\\) at .*$srcfile1:$bp_location14\[\r\n\]+$bp_location14\[\t \]+void marker4.*" {
- pass "run until breakpoint set at small function, optimized file (line bp_location14)"
+ set test "run until function breakpoint, optimized file"
+ gdb_test_multiple "" $test {
+ -re "Breakpoint \[0-9\]+,.*main .*argc.*argv.* at .*$::srcfile:$::bp_location6.*$::bp_location6\[\t \]+if .argc.* \{.*$::gdb_prompt $" {
+ pass $test
}
- -re "Breakpoint $decimal, factorial \\(.*\\) .*\{\r\n$gdb_prompt" {
- # GCC 4.3 emits bad line number information - see gcc/36748.
- if { [test_compiler_info "gcc-4-3-*"] } {
- setup_xfail *-*-*
- }
- fail "run until breakpoint set at small function, optimized file"
+ -re "Breakpoint \[0-9\]+,.*main .*argc.*argv.* at .*$::gdb_prompt $" {
+ pass "$test (code motion)"
}
}
+ # run until the breakpoint at a small function
+ #
+ # Add a second pass pattern. The behavior differs here between stabs
+ # and dwarf for one-line functions. Stabs preserves two line symbols
+ # (one before the prologue and one after) with the same line number,
+ # but dwarf regards these as duplicates and discards one of them.
+ # Therefore the address after the prologue (where the breakpoint is)
+ # has no exactly matching line symbol, and GDB reports the breakpoint
+ # as if it were in the middle of a line rather than at the beginning.
+
+ set bp_location14 [gdb_get_line_number "set breakpoint 14 here" $::srcfile1]
+
+ gdb_test_multiple "continue" \
+ "run until breakpoint set at small function, optimized file" {
+ -re "Breakpoint $::decimal, marker4 \\(d=(d@entry=)?177601976\\) at .*$::srcfile1:$bp_location14\[\r\n\]+$bp_location14\[\t \]+void marker4.*" {
+ pass "run until breakpoint set at small function, optimized file (line bp_location14)"
+ }
+ -re "Breakpoint $::decimal, factorial \\(.*\\) .*\{\r\n$::gdb_prompt" {
+ # GCC 4.3 emits bad line number information - see gcc/36748.
+ if { [test_compiler_info "gcc-4-3-*"] } {
+ setup_xfail *-*-*
+ }
+ fail "run until breakpoint set at small function, optimized file"
+ }
+ }
+}
+
+test_break_optimized_prologue
+
# test that 'rbreak' on a symbol that may be from a shared library doesn't
# cause a "Junk at end of arguments." error.
#
--
2.38.1
next prev 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 ` Simon Marchi [this message]
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 ` [PATCH 07/14] gdb/testsuite/gdb.base/break.exp: split test_break_user_call Simon Marchi
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-5-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).