diff options
author | Joel Brobecker <brobecker@gnat.com> | 2006-10-06 17:46:56 +0000 |
---|---|---|
committer | Joel Brobecker <brobecker@gnat.com> | 2006-10-06 17:46:56 +0000 |
commit | 098514179bf63599ca6bdbdf6975eba5056e9b49 (patch) | |
tree | 6e9a07acfd241e9fe07ac6c105cdf0e4811d20fa /gdb | |
parent | 631b0ed0204da026f48ba477bdb482c425d0d695 (diff) | |
download | fsf-binutils-gdb-098514179bf63599ca6bdbdf6975eba5056e9b49.zip fsf-binutils-gdb-098514179bf63599ca6bdbdf6975eba5056e9b49.tar.gz fsf-binutils-gdb-098514179bf63599ca6bdbdf6975eba5056e9b49.tar.bz2 |
* gdb.ada/watch_arg/watch.adb: New file.
* gdb.ada/watch_arg.exp: New testcase.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/watch_arg.exp | 61 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/watch_arg/watch.adb | 31 |
3 files changed, 97 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 1c2d6f3..38f67ba 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-10-06 Joel Brobecker <brobecker@adacore.com> + + * gdb.ada/watch_arg/watch.adb: New file. + * gdb.ada/watch_arg.exp: New testcase. + 2006-10-02 Vladimir Prus <vladimir@codesourcery.com> * gdb.mi/mi-basics.exp (test_path_specification): Pass orig_path diff --git a/gdb/testsuite/gdb.ada/watch_arg.exp b/gdb/testsuite/gdb.ada/watch_arg.exp new file mode 100644 index 0000000..81b9b9a --- /dev/null +++ b/gdb/testsuite/gdb.ada/watch_arg.exp @@ -0,0 +1,61 @@ +# Copyright 2006 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 2 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, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301, USA + +if $tracelevel then { + strace $tracelevel +} + +load_lib "ada.exp" + +set testdir "watch_arg" +set testfile "${testdir}/watch" +set srcfile ${srcdir}/${subdir}/${testfile}.adb +set binfile ${objdir}/${subdir}/${testfile} + +file mkdir ${objdir}/${subdir}/${testdir} +if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } { + return -1 +} + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load ${binfile} + +set bp_location [gdb_get_line_number "BREAK1" ${testdir}/watch.adb] +runto "watch.adb:$bp_location" + +# Insert a watchpoint on argument X + +gdb_test "watch x" \ + ".*atchpoint \[0-9\]+: x" \ + "Set watchpoint on function argument X" + +# Then insert a breakpoint at the location we'd like to continue to... +set bp_location [gdb_get_line_number "BREAK2" ${testdir}/watch.adb] +gdb_test "break watch.adb:$bp_location" \ + "Breakpoint \[0-9\]+ at.*: file .*watch.adb, line \[0-9\]+." \ + "insert second breakpoint in watch.adb" + +# Then continue to that breakpoint, and verify that the watchpoint +# did not interfere with that. + +gdb_test "cont" \ + "Breakpoint \[0-9\]+, watch \\(\\).*" \ + "Continuing to second breakpoint" + + diff --git a/gdb/testsuite/gdb.ada/watch_arg/watch.adb b/gdb/testsuite/gdb.ada/watch_arg/watch.adb new file mode 100644 index 0000000..e3cc4f6 --- /dev/null +++ b/gdb/testsuite/gdb.ada/watch_arg/watch.adb @@ -0,0 +1,31 @@ +-- Copyright 2006 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 2 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, write to the Free Software +-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +-- MA 02110-1301, USA + +procedure Watch is + + procedure Foo (X : access Integer) is + begin + X.all := 3; -- BREAK1 + end Foo; + + X : aliased Integer := 1; + +begin + Foo (X'Access); + X := 2; -- BREAK2 +end Watch; + |