/* Support for printing Pascal values for GDB, the GNU debugger.
- Copyright 2000, 2001, 2003
- Free Software Foundation, Inc.
+
+ Copyright 2000, 2001, 2003, 2005 Free Software Foundation, Inc.
This file is part of GDB.
int
-pascal_val_print (struct type *type, char *valaddr, int embedded_offset,
- CORE_ADDR address, struct ui_file *stream, int format,
- int deref_ref, int recurse, enum val_prettyprint pretty)
+pascal_val_print (struct type *type, const bfd_byte *valaddr,
+ int embedded_offset, CORE_ADDR address,
+ struct ui_file *stream, int format, int deref_ref,
+ int recurse, enum val_prettyprint pretty)
{
unsigned int i = 0; /* Number of characters printed */
unsigned len;
{
wtype = TYPE_TARGET_TYPE (type);
}
- vt_val = value_at (wtype, vt_address, NULL);
- val_print (VALUE_TYPE (vt_val), VALUE_CONTENTS (vt_val), 0,
+ vt_val = value_at (wtype, vt_address);
+ val_print (value_type (vt_val), value_contents (vt_val), 0,
VALUE_ADDRESS (vt_val), stream, format,
deref_ref, recurse + 1, pretty);
if (pretty)
value_at
(TYPE_TARGET_TYPE (type),
unpack_pointer (lookup_pointer_type (builtin_type_void),
- valaddr + embedded_offset),
- NULL);
- val_print (VALUE_TYPE (deref_val),
- VALUE_CONTENTS (deref_val), 0,
+ valaddr + embedded_offset));
+ val_print (value_type (deref_val),
+ value_contents (deref_val), 0,
VALUE_ADDRESS (deref_val), stream, format,
deref_ref, recurse + 1, pretty);
}
pascal_value_print (struct value *val, struct ui_file *stream, int format,
enum val_prettyprint pretty)
{
- struct type *type = VALUE_TYPE (val);
+ struct type *type = value_type (val);
/* If it is a pointer, indicate what it points to.
fprintf_filtered (stream, ") ");
}
}
- return val_print (type, VALUE_CONTENTS (val), VALUE_EMBEDDED_OFFSET (val),
- VALUE_ADDRESS (val) + VALUE_OFFSET (val),
+ return val_print (type, value_contents (val), VALUE_EMBEDDED_OFFSET (val),
+ VALUE_ADDRESS (val) + value_offset (val),
stream, format, 1, 0, pretty);
}
struct ui_file *, int, int,
enum val_prettyprint);
-static void
- pascal_object_print_value (struct type *, char *, CORE_ADDR, struct ui_file *,
- int, int, enum val_prettyprint, struct type **);
+static void pascal_object_print_value (struct type *, const bfd_byte *,
+ CORE_ADDR, struct ui_file *,
+ int, int, enum val_prettyprint,
+ struct type **);
void
-pascal_object_print_class_method (char *valaddr, struct type *type,
+pascal_object_print_class_method (const bfd_byte *valaddr, struct type *type,
struct ui_file *stream)
{
struct type *domain;
check_stub_method_group (domain, i);
for (j = 0; j < len2; j++)
{
- if (STREQ (DEPRECATED_SYMBOL_NAME (sym), TYPE_FN_FIELD_PHYSNAME (f, j)))
+ if (DEPRECATED_STREQ (DEPRECATED_SYMBOL_NAME (sym), TYPE_FN_FIELD_PHYSNAME (f, j)))
goto common;
}
}
return 0;
}
-/* Mutually recursive subroutines of pascal_object_print_value and c_val_print to
- print out a structure's fields: pascal_object_print_value_fields and pascal_object_print_value.
+/* Mutually recursive subroutines of pascal_object_print_value and
+ c_val_print to print out a structure's fields:
+ pascal_object_print_value_fields and pascal_object_print_value.
TYPE, VALADDR, ADDRESS, STREAM, RECURSE, and PRETTY have the
same meanings as in pascal_object_print_value and c_val_print.
should not print, or zero if called from top level. */
void
-pascal_object_print_value_fields (struct type *type, char *valaddr,
+pascal_object_print_value_fields (struct type *type, const bfd_byte *valaddr,
CORE_ADDR address, struct ui_file *stream,
int format, int recurse,
enum val_prettyprint pretty,
v = value_from_longest (TYPE_FIELD_TYPE (type, i),
unpack_field_as_long (type, valaddr, i));
- val_print (TYPE_FIELD_TYPE (type, i), VALUE_CONTENTS (v), 0, 0,
+ val_print (TYPE_FIELD_TYPE (type, i), value_contents (v), 0, 0,
stream, format, 0, recurse + 1, pretty);
}
}
baseclasses. */
void
-pascal_object_print_value (struct type *type, char *valaddr, CORE_ADDR address,
- struct ui_file *stream, int format, int recurse,
+pascal_object_print_value (struct type *type, const bfd_byte *valaddr,
+ CORE_ADDR address, struct ui_file *stream,
+ int format, int recurse,
enum val_prettyprint pretty,
struct type **dont_print_vb)
{
int boffset;
struct type *baseclass = check_typedef (TYPE_BASECLASS (type, i));
char *basename = TYPE_NAME (baseclass);
- char *base_valaddr;
+ const bfd_byte *base_valaddr;
if (BASETYPE_VIA_VIRTUAL (type, i))
{
if (boffset != -1 && (boffset < 0 || boffset >= TYPE_LENGTH (type)))
{
/* FIXME (alloc): not safe is baseclass is really really big. */
- base_valaddr = (char *) alloca (TYPE_LENGTH (baseclass));
- if (target_read_memory (address + boffset, base_valaddr,
+ bfd_byte *buf = alloca (TYPE_LENGTH (baseclass));
+ base_valaddr = buf;
+ if (target_read_memory (address + boffset, buf,
TYPE_LENGTH (baseclass)) != 0)
boffset = -1;
}
sizeof (CORE_ADDR));
CHECK_TYPEDEF (type);
- pascal_object_print_value_fields (type, VALUE_CONTENTS (val), VALUE_ADDRESS (val),
+ pascal_object_print_value_fields (type, value_contents (val), VALUE_ADDRESS (val),
stream, format, recurse, pretty, NULL, 1);
return;
}
- val_print (type, VALUE_CONTENTS (val), 0, VALUE_ADDRESS (val),
+ val_print (type, value_contents (val), 0, VALUE_ADDRESS (val),
stream, format, 0, recurse, pretty);
}
void
-pascal_object_print_class_member (char *valaddr, struct type *domain,
+pascal_object_print_class_member (const bfd_byte *valaddr, struct type *domain,
struct ui_file *stream, char *prefix)
{
void
_initialize_pascal_valprint (void)
{
- add_show_from_set
+ deprecated_add_show_from_set
(add_set_cmd ("pascal_static-members", class_support, var_boolean,
(char *) &pascal_static_field_print,
"Set printing of pascal static members.",