X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fgnu-v3-abi.c;h=d630ec07b11175e8a4610bf79e88a5d5c569ad5b;hb=228c8f4be0c428369ec6b68e25696863d1e62ed7;hp=15c7c66700133c119e7b556946f5b886c17761cb;hpb=42a4f53d2bf8938c2aeda9f52be7a20534b214a9;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/gnu-v3-abi.c b/gdb/gnu-v3-abi.c index 15c7c66700..d630ec07b1 100644 --- a/gdb/gnu-v3-abi.c +++ b/gdb/gnu-v3-abi.c @@ -28,6 +28,7 @@ #include "c-lang.h" #include "typeprint.h" #include +#include "cli/cli-style.h" static struct cp_abi_ops gnu_v3_abi_ops; @@ -327,7 +328,7 @@ gnuv3_rtti_type (struct value *value, If we didn't like this approach, we could instead look in the type_info object itself to get the class name. But this way should work just as well, and doesn't read target memory. */ - vtable_symbol_name = MSYMBOL_DEMANGLED_NAME (vtable_symbol); + vtable_symbol_name = vtable_symbol->demangled_name (); if (vtable_symbol_name == NULL || !startswith (vtable_symbol_name, "vtable for ")) { @@ -392,7 +393,7 @@ gnuv3_get_virtual_fn (struct gdbarch *gdbarch, struct value *container, /* If this architecture uses function descriptors directly in the vtable, then the address of the vtable entry is actually a "function pointer" (i.e. points to the descriptor). We don't need to scale the index - by the size of a function descriptor; GCC does that before outputing + by the size of a function descriptor; GCC does that before outputting debug information. */ if (gdbarch_vtable_function_descriptors (gdbarch)) vfn = value_addr (vfn); @@ -677,7 +678,7 @@ gnuv3_make_method_ptr (struct type *type, gdb_byte *contents, { struct gdbarch *gdbarch = get_type_arch (type); int size = TYPE_LENGTH (builtin_type (gdbarch)->builtin_data_ptr); - enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); + enum bfd_endian byte_order = type_byte_order (type); /* FIXME drow/2006-12-24: The adjustment of "this" is currently always zero, since the method pointer is of the correct type. @@ -906,16 +907,16 @@ print_one_vtable (struct gdbarch *gdbarch, struct value *value, if (gdbarch_vtable_function_descriptors (gdbarch)) vfn = value_addr (vfn); - TRY + try { addr = value_as_address (vfn); } - CATCH (ex, RETURN_MASK_ERROR) + catch (const gdb_exception_error &ex) { - printf_filtered (_(""), ex.message); + fprintf_styled (gdb_stdout, metadata_style.style (), + _(""), ex.what ()); got_error = 1; } - END_CATCH if (!got_error) print_function_pointer_address (opts, gdbarch, addr, gdb_stdout); @@ -1147,11 +1148,11 @@ gnuv3_get_typename_from_type_info (struct value *type_info_ptr) #define TYPEINFO_PREFIX "typeinfo for " #define TYPEINFO_PREFIX_LEN (sizeof (TYPEINFO_PREFIX) - 1) - symname = MSYMBOL_DEMANGLED_NAME (typeinfo_sym.minsym); + symname = typeinfo_sym.minsym->demangled_name (); if (symname == NULL || strncmp (symname, TYPEINFO_PREFIX, TYPEINFO_PREFIX_LEN)) error (_("typeinfo symbol '%s' has unexpected name"), - MSYMBOL_LINKAGE_NAME (typeinfo_sym.minsym)); + typeinfo_sym.minsym->linkage_name ()); class_name = symname + TYPEINFO_PREFIX_LEN; /* Strip off @plt and version suffixes. */ @@ -1201,7 +1202,7 @@ gnuv3_skip_trampoline (struct frame_info *frame, CORE_ADDR stop_pc) /* The symbol's demangled name should be something like "virtual thunk to FUNCTION", where FUNCTION is the name of the function being thunked to. */ - thunk_name = MSYMBOL_DEMANGLED_NAME (thunk_sym.minsym); + thunk_name = thunk_sym.minsym->demangled_name (); if (thunk_name == NULL || strstr (thunk_name, " thunk to ") == NULL) return 0;