diff options
author | Pedro Alves <palves@redhat.com> | 2009-11-15 20:14:00 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2009-11-15 20:14:00 +0000 |
commit | 4867c1fb96b4e9509d889ede0e505b5e5bbf4d3c (patch) | |
tree | 84ee09ed044b812dec8096a0fb8b538a816deb0d | |
parent | 678229626ec8f1a0d0d5c494335c05e9d0b52832 (diff) | |
download | gdb-4867c1fb96b4e9509d889ede0e505b5e5bbf4d3c.zip gdb-4867c1fb96b4e9509d889ede0e505b5e5bbf4d3c.tar.gz gdb-4867c1fb96b4e9509d889ede0e505b5e5bbf4d3c.tar.bz2 |
* gdb.base/watch-vfork.c, gdb.base/watch-vfork.exp: New files.
-rw-r--r-- | gdb/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/watch-vfork.c | 41 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/watch-vfork.exp | 52 |
3 files changed, 97 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index fefd628..64eb802 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2009-11-15 Pedro Alves <pedro@codesourcery.com> + + * gdb.base/watch-vfork.c, gdb.base/watch-vfork.exp: New files. + 2009-11-13 Daniel Jacobowitz <dan@codesourcery.com> * lib/gdb.exp (current_target_name): New procedure. diff --git a/gdb/testsuite/gdb.base/watch-vfork.c b/gdb/testsuite/gdb.base/watch-vfork.c new file mode 100644 index 0000000..a72be3d --- /dev/null +++ b/gdb/testsuite/gdb.base/watch-vfork.c @@ -0,0 +1,41 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2009 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/>. */ + +#include <unistd.h> + +int *global; + +int +main (void) +{ + int pid; + + pid = vfork (); + if (pid == -1) + { + return 1; + } + else if (pid != 0) + { + global = &pid; + } + else + { + _exit (0); + } + return 0; +} diff --git a/gdb/testsuite/gdb.base/watch-vfork.exp b/gdb/testsuite/gdb.base/watch-vfork.exp new file mode 100644 index 0000000..940af99 --- /dev/null +++ b/gdb/testsuite/gdb.base/watch-vfork.exp @@ -0,0 +1,52 @@ +# This testcase is part of GDB, the GNU debugger. + +# Copyright 2009 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/>. + +global srcfile +set testfile "watch-vfork" +if { [build_executable ${testfile}.exp ${testfile} ${testfile}.c {debug}] } { + untested ${testfile}.exp + return -1 +} + +proc test_watchpoint_across_vfork { hw teststr } { + global testfile + + clean_restart ${testfile} + + if { ![runto main] } then { + fail "run to main ($teststr)" + return + } + + if { ! $hw } { + gdb_test "set can-use-hw-watchpoints 0" "" "" + } + + gdb_test "watch global" \ + "atchpoint .*: global" \ + "Watchpoint on global variable ($teststr)" + + gdb_test "continue" \ + "atchpoint .*: global.*" \ + "Watchpoint triggers after vfork ($teststr)" +} + +if { ![target_info exists gdb,no_hardware_watchpoints] } { + test_watchpoint_across_vfork 1 "hw" +} + +test_watchpoint_across_vfork 0 "sw" |