64 struct ui_file *stream,
int recurse,
65 struct value *original_value,
75 int length_pos, length_size, string_pos;
76 struct type *char_type;
87 len = high_bound - low_bound + 1;
98 || ((eltlen == 1 || eltlen == 2 || eltlen == 4)
106 unsigned int temp_len;
111 temp_len * eltlen, eltlen,
113 && temp_len < len && temp_len < options->
print_max;
119 valaddr + embedded_offset, len, NULL, 0,
138 address, stream, recurse,
139 original_value, options, i);
145 addr = address + embedded_offset;
152 original_value, options, 0, stream);
206 &string_pos, &char_type, NULL)
220 addr + string_pos, string_length,
227 valaddr + embedded_offset);
233 && (msymbol.
minsym != NULL)
245 struct value *vt_val;
246 struct symbol *wsym = NULL;
253 if (msymbol.
minsym != NULL)
255 const char *search_name
269 vt_val =
value_at (wtype, vt_address);
295 stream, recurse, original_value, options,
326 &string_pos, &char_type, NULL))
329 + length_pos, length_size,
332 valaddr + embedded_offset + string_pos,
333 len, NULL, 0, options);
337 address, stream, recurse,
338 original_value, options,
377 for (i = low_bound; i <= high_bound; i++)
380 valaddr + embedded_offset, i);
385 goto maybe_bad_bstring;
394 if (i + 1 <= high_bound
396 valaddr + embedded_offset, ++i))
401 while (i + 1 <= high_bound
403 valaddr + embedded_offset,
416 error (
_(
"Invalid pascal type code %d in symbol table."),
484 {
'_',
'_',
'v',
't',
'b',
'l',
'_',
'p',
't',
'r',
'_',
't',
'y',
'p',
'e', 0};
494 return (type_name != NULL
540 struct type **dont_print_vb,
541 int dont_print_statmem)
543 int i, len, n_baseclasses;
544 char *last_dont_print
555 if (n_baseclasses > 0)
557 stream, recurse + 1, val,
558 options, dont_print_vb);
560 if (!len && n_baseclasses == 1)
567 if (dont_print_statmem == 0)
575 for (i = n_baseclasses; i < len; i++)
583 else if (n_baseclasses > 0)
612 DMGL_PARAMS | DMGL_ANSI);
678 address, stream, recurse + 1, val, &opts,
685 if (dont_print_statmem == 0)
712 struct type **dont_print_vb)
714 struct type **last_dont_print
719 if (dont_print_vb == 0)
728 for (i = 0; i < n_baseclasses; i++)
733 const gdb_byte *base_valaddr = NULL;
740 struct type **first_dont_print
747 if (baseclass == first_dont_print[j])
778 base_valaddr = buf.data ();
782 address = address + boffset;
787 base_valaddr = valaddr;
808 thisoffset + boffset, address,
809 stream, recurse, val, options,
818 if (dont_print_vb == 0)
868 <same as static member of an already seen type>",
884 val, options, NULL, 1);
898 Set printing of pascal static members."),
_(
"\ 899 Show printing of pascal static members."), NULL,
struct block_symbol lookup_symbol_search_name(const char *search_name, const struct block *block, domain_enum domain)
void annotate_field_value(void)
void fprintf_symbol_filtered(struct ui_file *stream, const char *name, enum language lang, int arg_mode)
#define TYPE_FIELD_NAME(thistype, n)
#define TYPE_N_BASECLASSES(thistype)
void pascal_object_print_value_fields(struct type *type, const gdb_byte *valaddr, LONGEST offset, CORE_ADDR address, struct ui_file *stream, int recurse, struct value *val, const struct value_print_options *options, struct type **dont_print_vb, int dont_print_statmem)
int value_entirely_optimized_out(struct value *value)
CORE_ADDR unpack_pointer(struct type *type, const gdb_byte *valaddr)
#define BMSYMBOL_VALUE_ADDRESS(symbol)
LONGEST value_embedded_offset(const struct value *value)
#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)
#define BASETYPE_VIA_VIRTUAL(thistype, index)
static const struct generic_val_print_decorations p_decorations
void type_print(struct type *type, const char *varstring, struct ui_file *stream, int show)
int baseclass_offset(struct type *type, int index, const gdb_byte *valaddr, LONGEST embedded_offset, CORE_ADDR address, const struct value *val)
void annotate_field_name_end(void)
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)
void val_print_scalar_formatted(struct type *type, LONGEST embedded_offset, struct value *val, const struct value_print_options *options, int size, struct ui_file *stream)
struct type * check_typedef(struct type *type)
static struct obstack dont_print_vb_obstack
#define CATCH(EXCEPTION, MASK)
int field_is_static(struct field *f)
void fprintf_filtered(struct ui_file *stream, const char *format,...)
static ULONGEST extract_unsigned_integer(const gdb_byte *addr, int len, enum bfd_endian byte_order)
void fputs_filtered(const char *linebuffer, struct ui_file *stream)
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
#define TYPE_FIELD_IGNORE(thistype, n)
#define MSYMBOL_SEARCH_NAME(symbol)
struct gdbarch * get_type_arch(const struct type *type)
static void pascal_object_print_value(struct type *, const gdb_byte *, LONGEST, CORE_ADDR, struct ui_file *, int, struct value *, const struct value_print_options *, struct type **)
static void print_unpacked_pointer(struct type *type, struct type *elttype, struct type *unresolved_elttype, const gdb_byte *valaddr, int embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, const struct value_print_options *options)
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)
#define TYPE_FIELD_PACKED(thistype, n)
void read_memory(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
#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)
void wrap_here(const char *indent)
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, LONGEST offset, LONGEST 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)
void generic_val_print(struct type *type, int embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, struct value *original_value, const struct value_print_options *options, const struct generic_val_print_decorations *decorations)
#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
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_const_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
#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)
struct cmd_list_element * showprintlist
gdb::def_vector< gdb_byte > byte_vector
void val_print(struct type *type, LONGEST embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, struct value *val, const struct value_print_options *options, const struct language_defn *language)
void annotate_field_end(void)
unsigned long long ULONGEST
struct value * value_field_bitfield(struct type *type, int fieldno, const gdb_byte *valaddr, LONGEST embedded_offset, const struct value *val)
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)
void val_print_array_elements(struct type *type, LONGEST embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, struct value *val, const struct value_print_options *options, unsigned int i)
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 *)
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 error(const char *fmt,...)
void annotate_field_begin(struct type *type)
void _initialize_pascal_valprint(void)
void pascal_val_print(struct type *type, int embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, struct value *original_value, const struct value_print_options *options)