This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[commit] Fix two MI tests for little endian targets


The char *lpcharacter is displayed as a string, and shows up in the
list of changed variables whenever the string representation changes.
Since it's only pointing to a single char, this happens every time the
following byte on the stack is changed.  On LE targets this is
particularly likely to occur, although it depends whether the char
is put in the low or high end of a stack slot - it doesn't seem to
happen on x86, but it does reliably on mipsel-linux.

GDB is doing the right thing.  After Nick's recent work on string
varobjs it's clear that we should report it in -var-update every time
that the textual representation changes.

Tested on mips-linux -EL and committed.

-- 
Daniel Jacobowitz
CodeSourcery

2007-10-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/var-cmd.c (do_locals_tests): Define lcharacter as a
	two-char array.
	* gdb.mi/mi-var-cmd.exp, gdb.mi/mi2-var-cmd.exp: Use lcharacter[0].

Index: gdb/testsuite/gdb.mi/mi-var-cmd.exp
===================================================================
--- gdb/testsuite/gdb.mi/mi-var-cmd.exp	(revision 182501)
+++ gdb/testsuite/gdb.mi/mi-var-cmd.exp	(working copy)
@@ -87,7 +87,7 @@ mi_gdb_test "-var-create lpinteger * lpi
 	"\\^done,name=\"lpinteger\",numchild=\"1\",value=\"$hex\",type=\"int \\*\"" \
 	"create local variable lpinteger"
 
-mi_gdb_test "-var-create lcharacter * lcharacter" \
+mi_gdb_test "-var-create lcharacter * lcharacter\[0\]" \
 	"\\^done,name=\"lcharacter\",numchild=\"0\",value=\".*\",type=\"char\"" \
 	"create local variable lcharacter "
 
Index: gdb/testsuite/gdb.mi/var-cmd.c
===================================================================
--- gdb/testsuite/gdb.mi/var-cmd.c	(revision 182501)
+++ gdb/testsuite/gdb.mi/var-cmd.c	(working copy)
@@ -116,7 +116,7 @@ do_locals_tests ()
 {
   int linteger = 0;
   int *lpinteger = 0;
-  char lcharacter = 0;
+  char lcharacter[2] = { 0, 0 };
   char *lpcharacter = 0;
   long llong = 0;
   long *lplong = 0;
@@ -131,8 +131,8 @@ do_locals_tests ()
   /* Simple assignments */
   linteger = 1234;
   lpinteger = &linteger;
-  lcharacter = 'a';
-  lpcharacter = &lcharacter;
+  lcharacter[0] = 'a';
+  lpcharacter = lcharacter;
   llong = 2121L;
   lplong = &llong;
   lfloat = 2.1;
@@ -143,13 +143,13 @@ do_locals_tests ()
   lsimple.unsigned_integer = 255;
   lsimple.character = 'a';
   lsimple.signed_character = 21;
-  lsimple.char_ptr = &lcharacter;
+  lsimple.char_ptr = lcharacter;
   lpsimple = &lsimple;
   func = nothing;
 
   /* Check pointers */
   linteger = 4321;
-  lcharacter = 'b';
+  lcharacter[0] = 'b';
   llong = 1212L;
   lfloat = 1.2;
   ldouble = 5.498548281828172;
Index: gdb/testsuite/gdb.mi/mi2-var-cmd.exp
===================================================================
--- gdb/testsuite/gdb.mi/mi2-var-cmd.exp	(revision 182501)
+++ gdb/testsuite/gdb.mi/mi2-var-cmd.exp	(working copy)
@@ -87,7 +87,7 @@ mi_gdb_test "-var-create lpinteger * lpi
 	"\\^done,name=\"lpinteger\",numchild=\"1\",value=\"$hex\",type=\"int \\*\"" \
 	"create local variable lpinteger"
 
-mi_gdb_test "-var-create lcharacter * lcharacter" \
+mi_gdb_test "-var-create lcharacter * lcharacter\[0\]" \
 	"\\^done,name=\"lcharacter\",numchild=\"0\",value=\".*\",type=\"char\"" \
 	"create local variable lcharacter "
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]