2010-07-13 Emmanuel Thomé <Emmanuel.Thome@gmail.com>
authorTom Tromey <tromey@redhat.com>
Wed, 14 Jul 2010 14:13:55 +0000 (14:13 +0000)
committerTom Tromey <tromey@redhat.com>
Wed, 14 Jul 2010 14:13:55 +0000 (14:13 +0000)
* c-valprint.c (c_val_print): Add embedded_offset to address in
call to val_print_array_elements.

2010-07-13  Tom Tromey  <tromey@redhat.com>

* gdb.python/py-prettyprint.c (struct arraystruct): New struct.
(main): Use it.
* gdb.python/py-prettyprint.exp (run_lang_tests): Add test.

gdb/ChangeLog
gdb/c-valprint.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.python/py-prettyprint.c
gdb/testsuite/gdb.python/py-prettyprint.exp

index 36c94f9..c1a3124 100644 (file)
@@ -1,3 +1,8 @@
+2010-07-13  Emmanuel Thomé  <Emmanuel.Thome@gmail.com>
+
+       * c-valprint.c (c_val_print): Add embedded_offset to address in
+       call to val_print_array_elements.
+
 2010-07-13  Tom Tromey  <tromey@redhat.com>
 
        * dwarf2read.c (dwarf2_read_index): Correctly set 'total_size'.
index 4e5a95f..f0895a4 100644 (file)
@@ -222,7 +222,8 @@ c_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
                {
                  i = 0;
                }
-             val_print_array_elements (type, valaddr + embedded_offset, address, stream,
+             val_print_array_elements (type, valaddr + embedded_offset,
+                                       address + embedded_offset, stream,
                                        recurse, original_value, options, i);
              fprintf_filtered (stream, "}");
            }
index 92fb577..6b52dbb 100644 (file)
@@ -1,5 +1,11 @@
 2010-07-13  Tom Tromey  <tromey@redhat.com>
 
+       * gdb.python/py-prettyprint.c (struct arraystruct): New struct.
+       (main): Use it.
+       * gdb.python/py-prettyprint.exp (run_lang_tests): Add test.
+
+2010-07-13  Tom Tromey  <tromey@redhat.com>
+
        * gdb.base/label.exp: New file.
        * gdb.base/label.c: New file.
 
index f461bb1..66a9014 100644 (file)
@@ -29,6 +29,12 @@ struct ss
   struct s b;
 };
 
+struct arraystruct
+{
+  int y;
+  struct s x[2];
+};
+
 struct ns {
   const char *null_str;
   int length;
@@ -199,6 +205,7 @@ main ()
 {
   struct ss  ss;
   struct ss  ssa[2];
+  struct arraystruct arraystruct;
   string x = make_string ("this is x");
   zzz_type c = make_container ("container");
   zzz_type c2 = make_container ("container2");
@@ -214,6 +221,10 @@ main ()
   init_ss(ssa+1, 5, 6);
   memset (&nullstr, 0, sizeof nullstr);
 
+  arraystruct.y = 7;
+  init_s (&arraystruct.x[0], 23);
+  init_s (&arraystruct.x[1], 24);
+
   struct ns  ns;
   ns.null_str = "embedded\0null\0string";
   ns.length = 20;
index f435fb7..3b2aadd 100644 (file)
@@ -76,6 +76,8 @@ proc run_lang_tests {lang} {
     gdb_test "print ssa\[1\]" " = a=< a=<5> b=<$hex>> b=< a=<6> b=<$hex>>"
     gdb_test "print ssa" " = {a=< a=<3> b=<$hex>> b=< a=<4> b=<$hex>>, a=< a=<5> b=<$hex>> b=< a=<6> b=<$hex>>}"
     
+    gdb_test "print arraystruct" " = {$nl *y = 7, *$nl *x = { a=<23> b=<$hex>,  a=<24> b=<$hex>} *$nl *}"
+
     if {$lang == "c++"} {
        gdb_test "print cps" "=  a=<8> b=<$hex>"
        gdb_test "print cpss" " = {$nl *zss = 9, *$nl *s =  a=<10> b=<$hex>$nl}"