From 6214f497d3f1800171978839ef029f712369e2f9 Mon Sep 17 00:00:00 2001 From: Daniel Jacobowitz Date: Fri, 21 Mar 2008 15:33:11 +0000 Subject: 2008-03-21 Chris Demetriou * symtab.c (rbreak_command): Quote symbol name before passing it to break_command. * gdb.base/break.exp (rbreak junk): New test for rbreak "Junk at end of arguments" issue. --- gdb/testsuite/gdb.base/break.exp | 42 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'gdb/testsuite/gdb.base') diff --git a/gdb/testsuite/gdb.base/break.exp b/gdb/testsuite/gdb.base/break.exp index 0ec70c9..2e042dd 100644 --- a/gdb/testsuite/gdb.base/break.exp +++ b/gdb/testsuite/gdb.base/break.exp @@ -944,6 +944,48 @@ gdb_expect { } +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load ${binfile} + +if [target_info exists gdb_stub] { + gdb_step_for_stub; +} + +# +# test that 'rbreak' on a symbol that may be from a shared library doesn't +# cause a "Junk at end of arguments." error. +# +# On x86 GNU/Linux, this test will choke on e.g. __libc_start_main@plt. +# +# Note that this test won't necessarily choke on all targets even if +# all the rbreak issue is present. rbreak needs to match and set a +# breakpoint on a symbol causes 'break' to choke. +# + +gdb_test "set breakpoint pending on" "" "rbreak junk pending setup" + +# We expect at least one breakpoint to be set when we "rbreak main". +gdb_test "rbreak main" \ + ".*Breakpoint.*at.* file .*$srcfile, line.*" \ + "rbreak junk set breakpoint" + +# Run to a breakpoint. Fail if we see "Junk at end of arguments". +gdb_run_cmd +gdb_expect { + -re "Junk at end of arguments" { + fail "rbreak junk" + } + -re ".*Breakpoint \[0-9\]+,.*$gdb_prompt $" { + pass "rbreak junk" + } + timeout { + fail "rbreak junk (timeout)" + } +} + + # Reset the default arguments for VxWorks if [istarget "*-*-vxworks*"] { set timeout 10 -- cgit v1.1