public inbox for gdb-cvs@sourceware.org help / color / mirror / Atom feed
From: Simon Marchi <simark@sourceware.org> To: gdb-cvs@sourceware.org Subject: [binutils-gdb] gdb/testsuite/gdb.base/break.exp: split test_break_optimized_prologue Date: Thu, 24 Nov 2022 15:23:09 +0000 (GMT) [thread overview] Message-ID: <20221124152309.F0F393830B0C@sourceware.org> (raw) https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=01e43c20bb7f8bf7a8ba4d416dca62d1ad7d3a7b commit 01e43c20bb7f8bf7a8ba4d416dca62d1ad7d3a7b Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Wed Nov 23 13:39:49 2022 -0500 gdb/testsuite/gdb.base/break.exp: split test_break_optimized_prologue Change-Id: Ibf17033c8ce72aa5cfe1b739be2902e84a5e945d Approved-By: Kevin Buettner <kevinb@redhat.com> Diff: --- 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 a9728798fab..7e410b4adee 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. #
reply other threads:[~2022-11-24 15:23 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=20221124152309.F0F393830B0C@sourceware.org \ --to=simark@sourceware.org \ --cc=gdb-cvs@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: linkBe 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).