28 #include "floatformat.h"
40 #if TARGET_CHAR_BIT != 8 || HOST_CHAR_BIT != 8
50 enum bfd_endian byte_order)
53 const unsigned char *p;
54 const unsigned char *startaddr = addr;
55 const unsigned char *endaddr = startaddr +
len;
57 if (len > (
int)
sizeof (
LONGEST))
59 That operation is not available on integers of more than %d bytes."),
64 if (byte_order == BFD_ENDIAN_BIG)
68 retval = ((
LONGEST) * p ^ 0x80) - 0x80;
69 for (++p; p < endaddr; ++p)
70 retval = (retval << 8) | *p;
76 retval = ((
LONGEST) * p ^ 0x80) - 0x80;
77 for (--p; p >= startaddr; --p)
78 retval = (retval << 8) | *p;
85 enum bfd_endian byte_order)
88 const unsigned char *p;
89 const unsigned char *startaddr = addr;
90 const unsigned char *endaddr = startaddr +
len;
94 That operation is not available on integers of more than %d bytes."),
100 if (byte_order == BFD_ENDIAN_BIG)
102 for (p = startaddr; p < endaddr; ++p)
103 retval = (retval << 8) | *p;
107 for (p = endaddr - 1; p >= startaddr; --p)
108 retval = (retval << 8) | *p;
120 enum bfd_endian byte_order,
LONGEST *pval)
127 if (byte_order == BFD_ENDIAN_BIG)
130 len > (
int)
sizeof (
LONGEST) && p < addr + orig_len;
143 for (p = addr + orig_len - 1;
154 if (len <= (
int)
sizeof (
LONGEST))
174 _(
"extract_typed_address: "
175 "type is not a pointer or reference"));
185 enum bfd_endian byte_order,
LONGEST val)
193 if (byte_order == BFD_ENDIAN_BIG)
195 for (p = endaddr - 1; p >= startaddr; --p)
203 for (p = startaddr; p < endaddr; ++p)
213 enum bfd_endian byte_order,
ULONGEST val)
216 unsigned char *startaddr = (
unsigned char *) addr;
217 unsigned char *endaddr = startaddr +
len;
221 if (byte_order == BFD_ENDIAN_BIG)
223 for (p = endaddr - 1; p >= startaddr; --p)
231 for (p = startaddr; p < endaddr; ++p)
247 _(
"store_typed_address: "
248 "type is not a pointer or reference"));
263 struct value *reg_val;
284 struct value *reg_val;
493 error (
_(
"Unknown argument list address for `%s'."),
505 error (
_(
"Unknown argument list address for `%s'."),
519 error (
_(
"Cannot look up value of a typedef `%s'."),
537 struct value *regval;
546 error (
_(
"Value of register variable not available for `%s'."),
556 error (
_(
"Value of register variable not available for `%s'."),
572 memset (&lookup_data, 0,
sizeof (lookup_data));
601 error (
_(
"Cannot look up value of a botched symbol `%s'."),
707 int optim, unavail, ok;
768 int optim, unavail, ok;
771 buf, &optim, &unavail);
int frame_id_p(struct frame_id l)
int extract_long_unsigned_integer(const gdb_byte *addr, int orig_len, enum bfd_endian byte_order, LONGEST *pval)
#define VALUE_FRAME_ID(val)
#define SYMBOL_PRINT_NAME(symbol)
void store_unsigned_integer(gdb_byte *addr, int len, enum bfd_endian byte_order, ULONGEST val)
void value_contents_copy(struct value *dst, int dst_offset, struct value *src, int src_offset, int length)
int value_offset(const struct value *value)
void unsigned_address_to_pointer(struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr)
struct bfd_section * the_bfd_section
#define BMSYMBOL_VALUE_ADDRESS(symbol)
struct value * value_at(struct type *type, CORE_ADDR addr)
const struct builtin_type * builtin_type(struct gdbarch *gdbarch)
struct value * allocate_value_lazy(struct type *type)
#define SYMBOL_CLASS(symbol)
void internal_error(const char *file, int line, const char *fmt,...)
const struct frame_id null_frame_id
const struct language_defn * language_def(enum language lang)
static int minsym_lookup_iterator_cb(struct objfile *objfile, void *cb_data)
struct value * default_read_var_value(struct symbol *var, struct frame_info *frame)
void value_free(struct value *val)
struct value * read_var_value(struct symbol *var, struct frame_info *frame)
struct gdbarch * symbol_arch(const struct symbol *symbol)
void mark_value_bytes_unavailable(struct value *value, int offset, int length)
int gdbarch_num_regs(struct gdbarch *gdbarch)
struct value * allocate_value(struct type *type)
int gdbarch_register_to_value(struct gdbarch *gdbarch, struct frame_info *frame, int regnum, struct type *type, gdb_byte *buf, int *optimizedp, int *unavailablep)
CORE_ADDR get_frame_locals_address(struct frame_info *fi)
struct objfile * symbol_objfile(const struct symbol *symbol)
int gdbarch_convert_register_p(struct gdbarch *gdbarch, int regnum, struct type *type)
#define SYMBOL_OBJ_SECTION(objfile, symbol)
#define MSYMBOL_OBJ_SECTION(objfile, symbol)
int gdbarch_num_pseudo_regs(struct gdbarch *gdbarch)
struct value * value_from_register(struct type *type, int regnum, struct frame_info *frame)
struct value * get_frame_register_value(struct frame_info *frame, int regnum)
struct frame_id get_frame_id(struct frame_info *fi)
struct type * check_typedef(struct type *type)
#define SYMBOL_VALUE_ADDRESS(symbol)
struct bound_minimal_symbol result
struct value * value_of_register_lazy(struct frame_info *frame, int regnum)
struct type * register_type(struct gdbarch *gdbarch, int regnum)
void read_frame_register_value(struct value *value, struct frame_info *frame)
int symbol_read_needs_frame(struct symbol *sym)
#define gdb_assert_not_reached(message)
#define SYMBOL_REGISTER_OPS(symbol)
#define SYMBOL_COMPUTED_OPS(symbol)
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
#define VALUE_REGNUM(val)
struct value * gdbarch_value_from_register(struct gdbarch *gdbarch, struct type *type, int regnum, struct frame_id frame_id)
CORE_ADDR symbol_overlayed_address(CORE_ADDR address, struct obj_section *section)
struct gdbarch * get_type_arch(const struct type *type)
#define SYMBOL_LINKAGE_NAME(symbol)
void set_value_offset(struct value *value, int offset)
struct value * value_at_lazy(struct type *type, CORE_ADDR addr)
void gdbarch_iterate_over_objfiles_in_search_order(struct gdbarch *gdbarch, iterate_over_objfiles_in_search_order_cb_ftype *cb, void *cb_data, struct objfile *current_objfile)
CORE_ADDR get_frame_args_address(struct frame_info *fi)
CORE_ADDR gdbarch_pointer_to_address(struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
CORE_ADDR extract_typed_address(const gdb_byte *buf, struct type *type)
LONGEST unpack_long(struct type *type, const gdb_byte *valaddr)
CORE_ADDR address_from_register(int regnum, struct frame_info *frame)
#define SYMBOL_VALUE(symbol)
ULONGEST extract_unsigned_integer(const gdb_byte *addr, int len, enum bfd_endian byte_order)
void address_to_signed_pointer(struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr)
const char const char int
struct value *(* la_read_var_value)(struct symbol *var, struct frame_info *frame)
int value_optimized_out(struct value *value)
void value_fetch_lazy(struct value *val)
CORE_ADDR target_translate_tls_address(struct objfile *objfile, CORE_ADDR offset)
void mark_value_bytes_optimized_out(struct value *value, int offset, int length)
#define SYMBOL_BLOCK_VALUE(symbol)
#define TYPE_CODE(thistype)
struct value * value_of_register(int regnum, struct frame_info *frame)
struct type * resolve_dynamic_type(struct type *type, const gdb_byte *valaddr, CORE_ADDR addr)
struct type * builtin_data_ptr
struct minimal_symbol * minsym
LONGEST extract_signed_integer(const gdb_byte *addr, int len, enum bfd_endian byte_order)
struct value * default_value_from_register(struct gdbarch *gdbarch, struct type *type, int regnum, struct frame_id frame_id)
CORE_ADDR signed_pointer_to_address(struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
#define SYMBOL_LANGUAGE(symbol)
void store_typed_address(gdb_byte *buf, struct type *type, CORE_ADDR addr)
void error_value_optimized_out(void)
enum overlay_debugging_state overlay_debugging
unsigned long long ULONGEST
CORE_ADDR unsigned_pointer_to_address(struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
void release_value(struct value *val)
int register_size(struct gdbarch *gdbarch, int regnum)
int is_dynamic_type(struct type *type)
struct type * value_type(const struct value *value)
#define SYMBOL_TYPE(symbol)
CORE_ADDR value_as_address(struct value *val)
gdb_byte * value_contents_raw(struct value *value)
#define TYPE_LENGTH(thistype)
#define SYMBOL_VALUE_BYTES(symbol)
struct value * allocate_optimized_out_value(struct type *type)
struct value * value_of_user_reg(int regnum, struct frame_info *frame)
struct bound_minimal_symbol lookup_minimal_symbol(const char *name, const char *sfile, struct objfile *objf)
void error(const char *fmt,...)
void store_signed_integer(gdb_byte *addr, int len, enum bfd_endian byte_order, LONGEST val)
void gdbarch_address_to_pointer(struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr)
struct type * lookup_pointer_type(struct type *type)
struct gdbarch * get_frame_arch(struct frame_info *this_frame)
const ULONGEST const LONGEST len