diff options
author | Pedro Alves <palves@redhat.com> | 2012-11-06 15:25:05 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2012-11-06 15:25:05 +0000 |
commit | f6592439189cea5986f6bdc476001a2b3db6918a (patch) | |
tree | 1bc5d04c821412b138cb9cde4a72a4c4092fe0c3 | |
parent | 2d338fa948bca672c696ce23da905bddbbc374b4 (diff) | |
download | gdb-f6592439189cea5986f6bdc476001a2b3db6918a.zip gdb-f6592439189cea5986f6bdc476001a2b3db6918a.tar.gz gdb-f6592439189cea5986f6bdc476001a2b3db6918a.tar.bz2 |
gdb/
2012-11-06 Pedro Alves <palves@redhat.com>
PR gdb/14810
* breakpoint.c (bpstat_stop_status): Skip disabled locations.
gdb/testsuite/
2012-11-06 Pedro Alves <palves@redhat.com>
PR gdb/14810
* gdb.base/disabled-location.c: New file.
* gdb.base/disabled-location.exp: New file.
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/breakpoint.c | 2 | ||||
-rw-r--r-- | gdb/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/disabled-location.c | 29 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/disabled-location.exp | 41 |
5 files changed, 84 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2192b17..0edabcf 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2012-11-06 Pedro Alves <palves@redhat.com> + + PR gdb/14810 + + * breakpoint.c (bpstat_stop_status): Skip disabled locations. + 2012-11-06 Pierre Muller <muller@sourceware.org> * contrib/ari/create-web-ari-in-src.sh: Avoid problem if script diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 851dd86..e4ba90d 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -5175,7 +5175,7 @@ bpstat_stop_status (struct address_space *aspace, if (b->type == bp_hardware_watchpoint && bl != b->loc) break; - if (bl->shlib_disabled) + if (!bl->enabled || bl->shlib_disabled) continue; if (!bpstat_check_location (bl, aspace, bp_addr, ws)) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index be01765..5147182 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2012-11-06 Pedro Alves <palves@redhat.com> + + PR gdb/14810 + + * gdb.base/disabled-location.c: New file. + * gdb.base/disabled-location.exp: New file. + 2012-11-06 Tom Tromey <tromey@redhat.com> * gdb.threads/gcore-thread.exp: Use gdb_gcore_cmd. diff --git a/gdb/testsuite/gdb.base/disabled-location.c b/gdb/testsuite/gdb.base/disabled-location.c new file mode 100644 index 0000000..5325d5e --- /dev/null +++ b/gdb/testsuite/gdb.base/disabled-location.c @@ -0,0 +1,29 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright (C) 2012 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +static int +function (void) +{ + return 1; /* step stops here */ +} + +int +main () +{ + function (); + return 0; +} diff --git a/gdb/testsuite/gdb.base/disabled-location.exp b/gdb/testsuite/gdb.base/disabled-location.exp new file mode 100644 index 0000000..675cbb0 --- /dev/null +++ b/gdb/testsuite/gdb.base/disabled-location.exp @@ -0,0 +1,41 @@ +# Copyright (C) 2012 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +standard_testfile + +if { [prepare_for_testing ${testfile}.exp ${testfile}] } { + return -1 +} + +if ![runto_main] then { + fail "Can't run to main" + return 0 +} + +gdb_test "break function" \ + "Breakpoint.*at.* file .*$srcfile, line.*" \ + "setting breakpoint on function" + +gdb_test_no_output "disable \$bpnum.1" "disable location" + +set test "step doesn't trip on disabled location" +gdb_test_multiple "step" $test { + -re "Breakpoint .*$gdb_prompt $" { + fail $test + } + -re "function \\(\\) at .*$srcfile:.*step stops here.*$gdb_prompt $" { + pass $test + } +} |