61 struct ui_file *stream,
int recurse,
62 const struct value *original_value,
72 int length_pos, length_size, string_pos;
73 struct type *char_type;
83 len = high_bound - low_bound + 1;
94 || ((eltlen == 1 || eltlen == 2 || eltlen == 4)
102 unsigned int temp_len;
107 temp_len * eltlen, eltlen,
109 && temp_len < len && temp_len < options->
print_max;
115 valaddr + embedded_offset, len, NULL, 0,
134 address, stream, recurse,
135 original_value, options, i);
141 addr = address + embedded_offset;
148 original_value, options, 0, stream);
202 &string_pos, &char_type, NULL)
210 buffer =
xmalloc (length_size);
211 read_memory (addr + length_pos, buffer, length_size);
216 addr + string_pos, string_length,
223 valaddr + embedded_offset);
229 && (msymbol.
minsym != NULL)
241 struct value *vt_val;
250 if (msymbol.
minsym != NULL)
263 vt_val =
value_at (wtype, vt_address);
289 stream, recurse, original_value, options,
320 &string_pos, &char_type, NULL))
323 + length_pos, length_size,
326 valaddr + embedded_offset + string_pos,
327 len, NULL, 0, options);
331 address, stream, recurse,
332 original_value, options,
348 struct type *
range = elttype;
356 if (low_bound == 0 && high_bound == -1 &&
TYPE_LENGTH (type) > 0)
371 for (i = low_bound; i <= high_bound; i++)
374 valaddr + embedded_offset, i);
379 goto maybe_bad_bstring;
388 if (i + 1 <= high_bound
390 valaddr + embedded_offset, ++i))
395 while (i + 1 <= high_bound
397 valaddr + embedded_offset,
410 error (
_(
"Invalid pascal type code %d in symbol table."),
472 const struct value *,
478 {
'_',
'_',
'v',
't',
'b',
'l',
'_',
'p',
't',
'r',
'_',
't',
'y',
'p',
'e', 0};
488 return (type_name != NULL
532 const struct value *val,
534 struct type **dont_print_vb,
535 int dont_print_statmem)
537 int i,
len, n_baseclasses;
548 if (n_baseclasses > 0)
550 stream, recurse + 1, val,
551 options, dont_print_vb);
553 if (!len && n_baseclasses == 1)
560 if (dont_print_statmem == 0)
568 for (i = n_baseclasses; i <
len; i++)
576 else if (n_baseclasses > 0)
605 DMGL_PARAMS | DMGL_ANSI);
671 address, stream, recurse + 1, val, &opts,
678 if (dont_print_statmem == 0)
703 const struct value *val,
705 struct type **dont_print_vb)
707 struct type **last_dont_print
712 if (dont_print_vb == 0)
721 for (i = 0; i < n_baseclasses; i++)
726 const gdb_byte *base_valaddr = NULL;
732 struct type **first_dont_print
739 if (baseclass == first_dont_print[j])
778 address = address + boffset;
784 base_valaddr = valaddr;
805 thisoffset + boffset, address,
806 stream, recurse, val, options,
815 if (dont_print_vb == 0)
865 <same as static member of an already seen type>",
881 val, options, NULL, 1);
898 Set printing of pascal static members."),
_(
"\
899 Show printing of pascal static members."), NULL,
void generic_val_print(struct type *type, const gdb_byte *valaddr, int embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, const struct value *original_value, const struct value_print_options *options, const struct generic_val_print_decorations *decorations)
void val_print_scalar_formatted(struct type *type, const gdb_byte *valaddr, int embedded_offset, const struct value *val, const struct value_print_options *options, int size, struct ui_file *stream)
ULONGEST extract_unsigned_integer(const gdb_byte *, int, enum bfd_endian)
void annotate_field_value(void)
void fprintf_symbol_filtered(struct ui_file *stream, const char *name, enum language lang, int arg_mode)
struct value * value_field_bitfield(struct type *type, int fieldno, const gdb_byte *valaddr, int embedded_offset, const struct value *val)
#define MSYMBOL_LINKAGE_NAME(symbol)
#define TYPE_FIELD_NAME(thistype, n)
#define TYPE_N_BASECLASSES(thistype)
int value_entirely_optimized_out(struct value *value)
CORE_ADDR unpack_pointer(struct type *type, const gdb_byte *valaddr)
#define BMSYMBOL_VALUE_ADDRESS(symbol)
#define TYPE_NAME(thistype)
struct value * value_at(struct type *type, CORE_ADDR addr)
#define TYPE_HIGH_BOUND(range_type)
void val_print_unavailable(struct ui_file *stream)
void common_val_print(struct value *val, struct ui_file *stream, int recurse, const struct value_print_options *options, const struct language_defn *language)
initialize_file_ftype _initialize_pascal_valprint
void pascal_object_print_value_fields(struct type *type, const gdb_byte *valaddr, int offset, CORE_ADDR address, struct ui_file *stream, int recurse, const struct value *val, const struct value_print_options *options, struct type **dont_print_vb, int dont_print_statmem)
#define BASETYPE_VIA_VIRTUAL(thistype, index)
static int print_unpacked_pointer(struct type *type, CORE_ADDR address, CORE_ADDR addr, const struct value_print_options *options, struct ui_file *stream)
void type_print(struct type *type, const char *varstring, struct ui_file *stream, int show)
void annotate_field_name_end(void)
static void pascal_object_print_value(struct type *, const gdb_byte *, int, CORE_ADDR, struct ui_file *, int, const struct value *, const struct value_print_options *, struct type **)
void val_print_invalid_address(struct ui_file *stream)
const gdb_byte * value_contents_for_printing(struct value *value)
int is_pascal_string_type(struct type *type, int *length_pos, int *length_size, int *string_pos, struct type **char_type, const char **arrayname)
#define TYPE_FIELD(thistype, n)
struct value_print_options user_print_options
#define TYPE_FIELD_TYPE(thistype, n)
enum val_prettyformat prettyformat
static void show_pascal_static_field_print(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
const char * paddress(struct gdbarch *gdbarch, CORE_ADDR addr)
int pascal_object_is_vtbl_ptr_type(struct type *type)
#define MSYMBOL_PRINT_NAME(symbol)
void val_print_optimized_out(const struct value *val, struct ui_file *stream)
struct type * check_typedef(struct type *type)
static struct obstack dont_print_vb_obstack
#define CATCH(EXCEPTION, MASK)
void initialize_file_ftype(void)
int field_is_static(struct field *f)
void fprintf_filtered(struct ui_file *stream, const char *format,...)
void val_print_array_elements(struct type *type, const gdb_byte *valaddr, int embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, const struct value *val, const struct value_print_options *options, unsigned int i)
void fputs_filtered(const char *linebuffer, struct ui_file *stream)
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
struct cleanup * make_cleanup(make_cleanup_ftype *function, void *arg)
#define TYPE_FIELD_IGNORE(thistype, n)
struct gdbarch * get_type_arch(const struct type *type)
void print_type_scalar(struct type *type, LONGEST val, struct ui_file *stream)
struct cmd_list_element * setprintlist
int pascal_static_field_print
#define TYPE_BASECLASS(thistype, index)
void wrap_here(char *indent)
#define TYPE_FIELD_PACKED(thistype, n)
void read_memory(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
int baseclass_offset(struct type *type, int index, const gdb_byte *valaddr, int embedded_offset, CORE_ADDR address, const struct value *val)
#define TYPE_FIELD_BITSIZE(thistype, n)
int value_bit_index(struct type *type, const gdb_byte *valaddr, int index)
#define TYPE_FIELD_BITPOS(thistype, n)
int pascal_object_is_vtbl_member(struct type *type)
void pascal_value_print(struct value *val, struct ui_file *stream, const struct value_print_options *options)
int value_bits_synthetic_pointer(const struct value *value, int offset, int length)
#define VTBL_FNADDR_OFFSET
void print_spaces_filtered(int n, struct ui_file *stream)
const struct language_defn * current_language
#define TYPE_TARGET_TYPE(thistype)
struct bound_minimal_symbol lookup_minimal_symbol_by_pc(CORE_ADDR pc)
#define TYPE_CODE(thistype)
#define TYPE_INDEX_TYPE(type)
int target_read_memory(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
struct minimal_symbol * minsym
struct symbol * lookup_symbol(const char *name, const struct block *block, domain_enum domain, struct field_of_this_result *is_a_field_of_this)
#define TYPE_NFIELDS(thistype)
const char pascal_vtbl_ptr_name[]
int print_address_demangle(const struct value_print_options *opts, struct gdbarch *gdbarch, CORE_ADDR addr, struct ui_file *stream, int do_demangle)
#define CHECK_TYPEDEF(TYPE)
struct cmd_list_element * showprintlist
void annotate_field_end(void)
unsigned long long ULONGEST
int value_embedded_offset(struct value *value)
struct type * value_type(const struct value *value)
#define SYMBOL_TYPE(symbol)
static struct obstack dont_print_statmem_obstack
#define LA_PRINT_STRING(stream, elttype, string, length, encoding, force_ellipses, options)
const char * type_name_no_tag(const struct type *type)
#define TYPE_LENGTH(thistype)
int val_print_string(struct type *elttype, const char *encoding, CORE_ADDR addr, int len, struct ui_file *stream, const struct value_print_options *options)
void gdb_flush(struct ui_file *file)
CORE_ADDR value_address(const struct value *value)
static void pascal_object_print_static_field(struct value *, struct ui_file *, int, const struct value_print_options *)
void pascal_val_print(struct type *type, const gdb_byte *valaddr, int embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, const struct value *original_value, const struct value_print_options *options)
int get_array_bounds(struct type *type, LONGEST *low_bound, LONGEST *high_bound)
enum bfd_endian byte_order
int get_discrete_bounds(struct type *type, LONGEST *lowp, LONGEST *highp)
void val_print(struct type *type, const gdb_byte *valaddr, int embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, const struct value *val, const struct value_print_options *options, const struct language_defn *language)
void error(const char *fmt,...)
void annotate_field_begin(struct type *type)
void do_cleanups(struct cleanup *old_chain)
void add_setshow_boolean_cmd(const char *name, enum command_class theclass, int *var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
const ULONGEST const LONGEST len