X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=gdb%2Ffindvar.c;h=5cf1cd4137b8bdaf8621e03845a8ad9674cdc625;hb=6c2659886f7018fcca26ee0fc813bc9748fb8513;hp=bbfd68995d367ef52cfff76ce3933dbbdafb1497;hpb=85102364b2d1845fe9ae7d70096671a3ea4bccf3;p=thirdparty%2Fbinutils-gdb.git diff --git a/gdb/findvar.c b/gdb/findvar.c index bbfd68995d3..5cf1cd4137b 100644 --- a/gdb/findvar.c +++ b/gdb/findvar.c @@ -1,6 +1,6 @@ /* Find a variable's value in memory, for GDB, the GNU debugger. - Copyright (C) 1986-2019 Free Software Foundation, Inc. + Copyright (C) 1986-2020 Free Software Foundation, Inc. This file is part of GDB. @@ -309,7 +309,7 @@ CORE_ADDR unsigned_pointer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf) { - enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); + enum bfd_endian byte_order = type_byte_order (type); return extract_unsigned_integer (buf, TYPE_LENGTH (type), byte_order); } @@ -318,7 +318,7 @@ CORE_ADDR signed_pointer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf) { - enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); + enum bfd_endian byte_order = type_byte_order (type); return extract_signed_integer (buf, TYPE_LENGTH (type), byte_order); } @@ -329,7 +329,7 @@ void unsigned_address_to_pointer (struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr) { - enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); + enum bfd_endian byte_order = type_byte_order (type); store_unsigned_integer (buf, TYPE_LENGTH (type), byte_order, addr); } @@ -338,7 +338,7 @@ void address_to_signed_pointer (struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr) { - enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); + enum bfd_endian byte_order = type_byte_order (type); store_signed_integer (buf, TYPE_LENGTH (type), byte_order, addr); } @@ -566,9 +566,9 @@ get_hosting_frame (struct symbol *var, const struct block *var_block, { if (BLOCK_FUNCTION (var_block) && !block_inlined_p (var_block) - && SYMBOL_PRINT_NAME (BLOCK_FUNCTION (var_block))) + && BLOCK_FUNCTION (var_block)->print_name ()) error (_("No frame is currently executing in block %s."), - SYMBOL_PRINT_NAME (BLOCK_FUNCTION (var_block))); + BLOCK_FUNCTION (var_block)->print_name ()); else error (_("No frame is currently executing in specified" " block")); @@ -601,7 +601,7 @@ default_read_var_value (struct symbol *var, const struct block *var_block, if (sym_need == SYMBOL_NEEDS_FRAME) gdb_assert (frame != NULL); else if (sym_need == SYMBOL_NEEDS_REGISTERS && !target_has_registers) - error (_("Cannot read `%s' without registers"), SYMBOL_PRINT_NAME (var)); + error (_("Cannot read `%s' without registers"), var->print_name ()); if (frame != NULL) frame = get_hosting_frame (var, var_block, frame); @@ -620,7 +620,7 @@ default_read_var_value (struct symbol *var, const struct block *var_block, /* Put the constant back in target format. */ v = allocate_value (type); store_signed_integer (value_contents_raw (v), TYPE_LENGTH (type), - gdbarch_byte_order (get_type_arch (type)), + type_byte_order (type), (LONGEST) SYMBOL_VALUE (var)); VALUE_LVAL (v) = not_lval; return v; @@ -668,7 +668,7 @@ default_read_var_value (struct symbol *var, const struct block *var_block, addr = get_frame_args_address (frame); if (!addr) error (_("Unknown argument list address for `%s'."), - SYMBOL_PRINT_NAME (var)); + var->print_name ()); addr += SYMBOL_VALUE (var); break; @@ -680,7 +680,7 @@ default_read_var_value (struct symbol *var, const struct block *var_block, argref = get_frame_args_address (frame); if (!argref) error (_("Unknown argument list address for `%s'."), - SYMBOL_PRINT_NAME (var)); + var->print_name ()); argref += SYMBOL_VALUE (var); ref = value_at (lookup_pointer_type (type), argref); addr = value_as_address (ref); @@ -694,7 +694,7 @@ default_read_var_value (struct symbol *var, const struct block *var_block, case LOC_TYPEDEF: error (_("Cannot look up value of a typedef `%s'."), - SYMBOL_PRINT_NAME (var)); + var->print_name ()); break; case LOC_BLOCK: @@ -721,7 +721,7 @@ default_read_var_value (struct symbol *var, const struct block *var_block, if (regval == NULL) error (_("Value of register variable not available for `%s'."), - SYMBOL_PRINT_NAME (var)); + var->print_name ()); addr = value_as_address (regval); } @@ -731,7 +731,7 @@ default_read_var_value (struct symbol *var, const struct block *var_block, if (regval == NULL) error (_("Value of register variable not available for `%s'."), - SYMBOL_PRINT_NAME (var)); + var->print_name ()); return regval; } } @@ -747,7 +747,7 @@ default_read_var_value (struct symbol *var, const struct block *var_block, struct obj_section *obj_section; memset (&lookup_data, 0, sizeof (lookup_data)); - lookup_data.name = SYMBOL_LINKAGE_NAME (var); + lookup_data.name = var->linkage_name (); gdbarch_iterate_over_objfiles_in_search_order (symbol_arch (var), @@ -767,7 +767,7 @@ default_read_var_value (struct symbol *var, const struct block *var_block, can't be NULL. */ gdb_assert (flavour_name != NULL); error (_("Missing %s symbol \"%s\"."), - flavour_name, SYMBOL_LINKAGE_NAME (var)); + flavour_name, var->linkage_name ()); } obj_section = MSYMBOL_OBJ_SECTION (lookup_data.result.objfile, msym); /* Relocate address, unless there is no section or the variable is @@ -793,7 +793,7 @@ default_read_var_value (struct symbol *var, const struct block *var_block, default: error (_("Cannot look up value of a botched symbol `%s'."), - SYMBOL_PRINT_NAME (var)); + var->print_name ()); break; } @@ -807,7 +807,7 @@ struct value * read_var_value (struct symbol *var, const struct block *var_block, struct frame_info *frame) { - const struct language_defn *lang = language_def (SYMBOL_LANGUAGE (var)); + const struct language_defn *lang = language_def (var->language ()); gdb_assert (lang != NULL); gdb_assert (lang->la_read_var_value != NULL); @@ -840,7 +840,7 @@ default_value_from_register (struct gdbarch *gdbarch, struct type *type, an integral number of registers. Otherwise, you need to do some fiddling with the last register copied here for little endian machines. */ - if (gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG + if (type_byte_order (type) == BFD_ENDIAN_BIG && len < register_size (gdbarch, regnum)) /* Big-endian, and we want less than full size. */ set_value_offset (value, register_size (gdbarch, regnum) - len); @@ -1088,8 +1088,9 @@ copy_integer_to_size_test () #endif +void _initialize_findvar (); void -_initialize_findvar (void) +_initialize_findvar () { #if GDB_SELF_TEST selftests::register_test