* breakpoint.c, breakpoint.h (breakpoint_init_inferior): New function
[deliverable/binutils-gdb.git] / gdb / c-valprint.c
index 2d5a82658989c177b932fe4bb65c0a36808910d9..bcf0a28767323776b11bb010d7b6dfe18cb805b9 100644 (file)
@@ -200,8 +200,25 @@ c_val_print (type, valaddr, address, stream, format, deref_ref, recurse,
              if (vtblprint)
                {
                  value vt_val;
+                 struct symbol *wsym = (struct symbol *)NULL;
+                 struct type *wtype;
+                 struct symtab *s;
+                 struct block *block = (struct block *)NULL;
+                 int is_this_fld;
 
-                 vt_val = value_at (TYPE_TARGET_TYPE (type), vt_address);
+
+                 wsym = lookup_symbol (SYMBOL_NAME(msymbol), block, 
+                               VAR_NAMESPACE, &is_this_fld, &s);
+                 if (wsym)
+                   {
+                     wtype = SYMBOL_TYPE(wsym);
+                   }
+                 else
+                   {
+                     wtype = TYPE_TARGET_TYPE(type);
+                   }
+                 vt_val = value_at (wtype, vt_address);
                  val_print (VALUE_TYPE (vt_val), VALUE_CONTENTS (vt_val),
                             VALUE_ADDRESS (vt_val), stream, format,
                             deref_ref, recurse + 1, pretty);
This page took 0.023413 seconds and 4 git commands to generate.