diff options
author | Keith Seitz <keiths@redhat.com> | 2002-09-16 19:01:43 +0000 |
---|---|---|
committer | Keith Seitz <keiths@redhat.com> | 2002-09-16 19:01:43 +0000 |
commit | 8038ed97238744212d494cdb48c53b2fa1f0f086 (patch) | |
tree | cb66d8ae735624e4e8ee59c6ec6832ef7087b956 /gdb/testsuite/gdb.mi | |
parent | 928e48af4f1074d16dcbb8b8f8d4a6800813ca02 (diff) | |
download | gdb-8038ed97238744212d494cdb48c53b2fa1f0f086.zip gdb-8038ed97238744212d494cdb48c53b2fa1f0f086.tar.gz gdb-8038ed97238744212d494cdb48c53b2fa1f0f086.tar.bz2 |
* gdb701.exp: New file for testing varobj target type bug.
* gdb701.c: New file.
Diffstat (limited to 'gdb/testsuite/gdb.mi')
-rw-r--r-- | gdb/testsuite/gdb.mi/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.mi/gdb701.c | 15 | ||||
-rw-r--r-- | gdb/testsuite/gdb.mi/gdb701.exp | 67 |
3 files changed, 87 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.mi/ChangeLog b/gdb/testsuite/gdb.mi/ChangeLog index c2934f8..15274e9 100644 --- a/gdb/testsuite/gdb.mi/ChangeLog +++ b/gdb/testsuite/gdb.mi/ChangeLog @@ -1,3 +1,8 @@ +2002-09-16 Keith Seitz <keiths@redhat.com> + + * gdb701.exp: New file for testing varobj target type bug. + * gdb701.c: New file. + 2002-09-13 Keith Seitz <keiths@redhat.com> * mi-var-child.exp: Use mi_step_to and mi_execute_to instead diff --git a/gdb/testsuite/gdb.mi/gdb701.c b/gdb/testsuite/gdb.mi/gdb701.c new file mode 100644 index 0000000..16e5c29 --- /dev/null +++ b/gdb/testsuite/gdb.mi/gdb701.c @@ -0,0 +1,15 @@ +struct _foo +{ + int x; + int y; + int z; +}; + +typedef struct _foo Foo; + +int +main (int argc, char *argv[]) +{ + Foo *foo = 0; + exit (0); +} diff --git a/gdb/testsuite/gdb.mi/gdb701.exp b/gdb/testsuite/gdb.mi/gdb701.exp new file mode 100644 index 0000000..703ec6a --- /dev/null +++ b/gdb/testsuite/gdb.mi/gdb701.exp @@ -0,0 +1,67 @@ +# Copyright 2002 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# Please email any bugs, comments, and/or additions to this file to: +# bug-gdb@prep.ai.mit.edu + +# +# test gdb/701 +# + +load_lib mi-support.exp +set MIFLAGS "-i=mi" + +gdb_exit +if [mi_gdb_start] { + continue +} + +set testfile gdb701 +set srcfile "$testfile.c" +set binfile $objdir/$subdir/$testfile +if {[gdb_compile $srcdir/$subdir/$srcfile $binfile executable debug] != ""} { + gdb_suppress_entire_file "Testcase compile failed, so all test in this file will automatically fail." +} + +# When varobj reports the types of objects, it often isn't really reporting +# the type as GDB knows it. For example, in this testcase, we have a +# structure which has been typedefed. A varobj of this type would really have +# a type of "TYPE_CODE_TYPEDEF". It's target type is "TYPE_CODE_STRUCT". Varobj +# should skip over the TYPEDEF type when figuring out the varobj's children. +# If it doesn't, Bad Things Happen(TM). + +# Run to main +mi_run_to_main + +# Step over "foo = 0" +mi_next "step over \"foo = 0\"" + +mi_gdb_test "-var-create fooPtr * foo" \ + "(&\".*\"\r\n)*\\^done,name=\"fooPtr\",numchild=\"3\",type=\"Foo \\*\"" \ + "create fooPtr" + +mi_gdb_test "-var-list-children fooPtr" \ + "(&\".*\"\r\n)*\\^done,numchild=\"3\",.*" \ + "list children of fooPtr" + +foreach i [list x y z] { + mi_gdb_test "-var-list-children fooPtr.$i" \ + "(&\".*\"\r\n)*\\^done,numchild=\"0\"" \ + "list children of fooPtr.$i" +} + +mi_gdb_exit +return 0 |