diff options
author | Vladimir Prus <vladimir@codesourcery.com> | 2007-12-14 18:15:47 +0000 |
---|---|---|
committer | Vladimir Prus <vladimir@codesourcery.com> | 2007-12-14 18:15:47 +0000 |
commit | afe8ab2206b453d775fe82aec2d3073181251a3e (patch) | |
tree | f0eddb3d26aef60db9cb71d3513089cfb9fb6c15 /gdb/testsuite/gdb.mi/mi-pending.exp | |
parent | 72b2ff0e02a1e6deaf32770f4ac82cf12fae3c2b (diff) | |
download | fsf-binutils-gdb-afe8ab2206b453d775fe82aec2d3073181251a3e.zip fsf-binutils-gdb-afe8ab2206b453d775fe82aec2d3073181251a3e.tar.gz fsf-binutils-gdb-afe8ab2206b453d775fe82aec2d3073181251a3e.tar.bz2 |
Add support for pending breakpoints in MI.
* gdb.h (gdb_breakpoint): Add parameter pending.
* breakpoint.c (gdb_breakpoint): Add parameter pending.
* mi/mi-cmd-break.c (mi_break_insert): Change
comment to refer to manual. Add support for
the -f flag, for pending breakpoint.
Diffstat (limited to 'gdb/testsuite/gdb.mi/mi-pending.exp')
-rw-r--r-- | gdb/testsuite/gdb.mi/mi-pending.exp | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.mi/mi-pending.exp b/gdb/testsuite/gdb.mi/mi-pending.exp new file mode 100644 index 0000000..34bb2a7 --- /dev/null +++ b/gdb/testsuite/gdb.mi/mi-pending.exp @@ -0,0 +1,75 @@ +# Copyright 2007 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/>. + +load_lib mi-support.exp +set MIFLAGS "-i=mi" + +if $tracelevel then { + strace $tracelevel +} + +# +# test running programs +# +set prms_id 0 +set bug_id 0 + +if {[skip_shlib_tests]} { + return 0 +} + +set testfile "mi-pending" +set libfile "mi-pendshr" +set srcfile $testfile.c +set libsrc $srcdir/$subdir/$libfile.c +set binfile $objdir/$subdir/$testfile +set lib_sl $objdir/$subdir/$libfile.sl + +set lib_opts debug +set exec_opts [list debug shlib=$lib_sl] + +if [get_compiler_info ${binfile}] { + return -1 +} + +if { [gdb_compile_shlib $libsrc $lib_sl $lib_opts] != "" + || [gdb_compile $srcdir/$subdir/$srcfile $binfile executable $exec_opts] != ""} { + untested "Could not compile either $libsrc or $srcdir/$subdir/$srcfile." + return -1 +} + +# Start with a fresh gdb. + +gdb_exit +mi_gdb_start +mi_gdb_reinitialize_dir $srcdir/$subdir +mi_gdb_load ${binfile} +gdb_load_shlibs $lib_sl + +if [target_info exists gdb_stub] { + gdb_step_for_stub; +} + +# Set pending breakpoint via MI +mi_gdb_test "-break-insert -f pendfunc1" \ + ".*\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\\(p\\)\",addr=\"<PENDING>\",pending=\"pendfunc1\",times=\"0\"\}"\ + "MI pending breakpoint on pendfunc1" + +mi_run_cmd + +# Make sure we hit breakpoint. +mi_gdb_test "" \ + ".*\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\".*func=\"pendfunc1\".*" \ + "Run till MI pending breakpoint on pendfunc1"
\ No newline at end of file |