This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] [PATCH] gdb.base/break.exp
- To: Michael Elizabeth Chastain <chastain at cygnus dot com>
- Subject: Re: [RFA] [PATCH] gdb.base/break.exp
- From: Michael Snyder <msnyder at redhat dot com>
- Date: Tue, 28 Nov 2000 11:55:50 -0800
- CC: gdb-patches at sourceware dot cygnus dot com
- Organization: Red Hat, Inc.
- References: <200011281838.KAA08807@train2.cygnus.com>
Michael Elizabeth Chastain wrote:
>
> OK. Here is version #3 of a break.exp patch.
>
> This patch fixes these test failures on i686-pc-linux-gnu (native):
>
> FAIL: gdb.base/break.exp: break main #1
> FAIL: gdb.base/break.exp: break main #2
> FAIL: gdb.base/break.exp: clear main
>
> In this version, I move the "break break clear" test before the "finish"
> command. I moved it right next to another existing test that calls
> "break marker2".
>
> Indeed, at the point the test is now, the program counter is in a scope
> which we control where the program-under-test already calls "marker3"
> as a function. So "marker3" *must* be a function name there, or break.c
> will get a glaring compilation error.
>
> That ought to extinguish the concerns about __libc_start_main and its
> local symbols that we don't control. :)
Good job. That's using the old noodle! ;-)
> "What does not kill my patch, makes it stronger". :)
>
> Michael Elizabeth Chastain
> <chastain@redhat.com>
> "love without fear"
>
> ---
>
> 2000-11-28 Michael Chastain <chastain@redhat.com>
>
> * break.exp (test_clear_command): use a marker function
> rather than 'main' for the test function. Also move this
> test to an execution point where the marker function names are
> guaranteed to be bound to functions. (Executing tests after a
> 'finish' from main runs into name conflicts with local names
> in __libc_start_main).
>
> Index: gdb/testsuite/gdb.base/break.exp
> ===================================================================
> RCS file: /cvs/src/src/gdb/testsuite/gdb.base/break.exp,v
> retrieving revision 1.6
> diff -c -3 -p -r1.6 break.exp
> *** gdb/testsuite/gdb.base/break.exp 2000/11/17 16:24:48 1.6
> --- gdb/testsuite/gdb.base/break.exp 2000/11/28 18:26:45
> *************** gdb_expect {
> *** 520,525 ****
> --- 520,534 ----
> timeout {fail "(timeout) clear current line has no breakpoint disallowed"}
> }
>
> + # Verify that we can set and clear multiple breakpoints.
> + #
> + # We don't test that it deletes the correct breakpoints. We do at
> + # least test that it deletes more than one breakpoint.
> + #
> + gdb_test "break marker3" "Breakpoint.*at.*" "break marker3 #1"
> + gdb_test "break marker3" "Breakpoint.*at.*" "break marker3 #2"
> + gdb_test "clear marker3" {Deleted breakpoints [0-9]+ [0-9]+.*}
> +
> # Verify that a breakpoint can be set via a convenience variable.
> #
> send_gdb "set \$foo=81\n"
> *************** if [istarget "hppa*-*-hpux*"] then {
> *** 706,720 ****
> #********
>
>
> - proc test_clear_command {} {
> - gdb_test "break main" "Breakpoint.*at.*" "break main #1"
> - gdb_test "break main" "Breakpoint.*at.*" "break main #2"
> -
> - # We don't test that it deletes the correct breakpoints. We do at
> - # least test that it deletes more than one breakpoint.
> - gdb_test "clear main" {Deleted breakpoints [0-9]+ [0-9]+.*}
> - }
> -
> #
> # Test "next" over recursive function call.
> #
> --- 715,720 ----
> *************** proc test_next_with_recursion {} {
> *** 802,808 ****
> gdb_stop_suppressing_tests;
> }
>
> - test_clear_command
> test_next_with_recursion
>
>
> --- 802,807 ----