diff options
author | Tom Tromey <tromey@redhat.com> | 2013-08-15 08:43:43 -0600 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2014-02-26 12:11:16 -0700 |
commit | efd66ac6698323d9523a4dce352008c4c835812e (patch) | |
tree | f886696f3562ab3ba9542f82dcced106c740e642 /gdb/minsyms.c | |
parent | 50e65b1713256487d50514b50b38b3fd1080b93e (diff) | |
download | gdb-efd66ac6698323d9523a4dce352008c4c835812e.zip gdb-efd66ac6698323d9523a4dce352008c4c835812e.tar.gz gdb-efd66ac6698323d9523a4dce352008c4c835812e.tar.bz2 |
change minsym representation
In a later patch we're going to change the minimal symbol address
calculation to apply section offsets at the point of use. To make it
simpler to catch potential problem spots, this patch changes the
representation of minimal symbols and introduces new
minimal-symbol-specific variants of the various accessors. This is
necessary because it would be excessively ambitious to try to convert
all the symbol types at once.
The core of this change is just renaming a field in minimal_symbol;
the rest is just a fairly mechanical rewording.
2014-02-26 Tom Tromey <tromey@redhat.com>
* symtab.h (struct minimal_symbol) <mginfo>: Rename from ginfo.
(MSYMBOL_VALUE, MSYMBOL_VALUE_ADDRESS, MSYMBOL_VALUE_BYTES)
(MSYMBOL_BLOCK_VALUE, MSYMBOL_VALUE_CHAIN, MSYMBOL_LANGUAGE)
(MSYMBOL_SECTION, MSYMBOL_OBJ_SECTION, MSYMBOL_NATURAL_NAME)
(MSYMBOL_LINKAGE_NAME, MSYMBOL_PRINT_NAME, MSYMBOL_DEMANGLED_NAME)
(MSYMBOL_SET_LANGUAGE, MSYMBOL_SEARCH_NAME)
(MSYMBOL_MATCHES_SEARCH_NAME, MSYMBOL_SET_NAMES): New macros.
* ada-lang.c (ada_main_name): Update.
(ada_lookup_simple_minsym): Update.
(ada_make_symbol_completion_list): Update.
(ada_add_standard_exceptions): Update.
* ada-tasks.c (read_atcb, ada_tasks_inferior_data_sniffer): Update.
* aix-thread.c (pdc_symbol_addrs, pd_enable): Update.
* amd64-windows-tdep.c (amd64_skip_main_prologue): Update.
* arm-tdep.c (skip_prologue_function): Update.
(arm_skip_stack_protector, arm_skip_stub): Update.
* arm-wince-tdep.c (arm_pe_skip_trampoline_code): Update.
(arm_wince_skip_main_prologue): Update.
* auxv.c (ld_so_xfer_auxv): Update.
* avr-tdep.c (avr_scan_prologue): Update.
* ax-gdb.c (gen_var_ref): Update.
* block.c (call_site_for_pc): Update.
* blockframe.c (get_pc_function_start): Update.
(find_pc_partial_function_gnu_ifunc): Update.
* breakpoint.c (create_overlay_event_breakpoint): Update.
(create_longjmp_master_breakpoint): Update.
(create_std_terminate_master_breakpoint): Update.
(create_exception_master_breakpoint): Update.
(resolve_sal_pc): Update.
* bsd-uthread.c (bsd_uthread_lookup_address): Update.
* btrace.c (ftrace_print_function_name, ftrace_function_switched):
Update.
* c-valprint.c (c_val_print): Update.
* coff-pe-read.c (add_pe_forwarded_sym): Update.
* coffread.c (coff_symfile_read): Update.
* common/agent.c (agent_look_up_symbols): Update.
* dbxread.c (find_stab_function_addr): Update.
(end_psymtab): Update.
* dwarf2loc.c (call_site_to_target_addr): Update.
(func_verify_no_selftailcall): Update.
(tailcall_dump): Update.
(call_site_find_chain_1): Update.
(dwarf_expr_reg_to_entry_parameter): Update.
* elfread.c (elf_gnu_ifunc_record_cache): Update.
(elf_gnu_ifunc_resolve_by_got): Update.
* f-valprint.c (info_common_command): Update.
* findvar.c (read_var_value): Update.
* frame.c (get_prev_frame_1): Update.
(inside_main_func): Update.
* frv-tdep.c (frv_skip_main_prologue): Update.
(frv_frame_this_id): Update.
* glibc-tdep.c (glibc_skip_solib_resolver): Update.
* gnu-v2-abi.c (gnuv2_value_rtti_type): Update.
* gnu-v3-abi.c (gnuv3_rtti_type): Update.
(gnuv3_skip_trampoline): Update.
* hppa-hpux-tdep.c (hppa32_hpux_in_solib_call_trampoline): Update.
(hppa64_hpux_in_solib_call_trampoline): Update.
(hppa_hpux_skip_trampoline_code): Update.
(hppa64_hpux_search_dummy_call_sequence): Update.
(hppa_hpux_find_import_stub_for_addr): Update.
(hppa_hpux_find_dummy_bpaddr): Update.
* hppa-tdep.c (hppa_symbol_address)
(hppa_lookup_stub_minimal_symbol): Update.
* i386-tdep.c (i386_skip_main_prologue): Update.
(i386_pe_skip_trampoline_code): Update.
* ia64-tdep.c (ia64_convert_from_func_ptr_addr): Update.
* infcall.c (get_function_name): Update.
* infcmd.c (until_next_command): Update.
* jit.c (jit_breakpoint_re_set_internal): Update.
(jit_inferior_init): Update.
* linespec.c (minsym_found): Update.
(add_minsym): Update.
* linux-fork.c (info_checkpoints_command): Update.
* linux-nat.c (get_signo): Update.
* linux-thread-db.c (inferior_has_bug): Update.
* m32c-tdep.c (m32c_return_value): Update.
(m32c_m16c_address_to_pointer): Update.
(m32c_m16c_pointer_to_address): Update.
* m32r-tdep.c (m32r_frame_this_id): Update.
* m68hc11-tdep.c (m68hc11_get_register_info): Update.
* machoread.c (macho_resolve_oso_sym_with_minsym): Update.
* maint.c (maintenance_translate_address): Update.
* minsyms.c (add_minsym_to_hash_table): Update.
(add_minsym_to_demangled_hash_table): Update.
(msymbol_objfile): Update.
(lookup_minimal_symbol): Update.
(iterate_over_minimal_symbols): Update.
(lookup_minimal_symbol_text): Update.
(lookup_minimal_symbol_by_pc_name): Update.
(lookup_minimal_symbol_solib_trampoline): Update.
(lookup_minimal_symbol_by_pc_section_1): Update.
(lookup_minimal_symbol_and_objfile): Update.
(prim_record_minimal_symbol_full): Update.
(compare_minimal_symbols): Update.
(compact_minimal_symbols): Update.
(build_minimal_symbol_hash_tables): Update.
(install_minimal_symbols): Update.
(terminate_minimal_symbol_table): Update.
(find_solib_trampoline_target): Update.
(minimal_symbol_upper_bound): Update.
* mips-linux-tdep.c (mips_linux_skip_resolver): Update.
* mips-tdep.c (mips_stub_frame_sniffer): Update.
(mips_skip_pic_trampoline_code): Update.
* msp430-tdep.c (msp430_skip_trampoline_code): Update.
* objc-lang.c (selectors_info): Update.
(classes_info): Update.
(find_methods): Update.
(find_imps): Update.
(find_objc_msgsend): Update.
* objfiles.c (objfile_relocate1): Update.
* objfiles.h (ALL_OBJFILE_MSYMBOLS): Update.
* obsd-tdep.c (obsd_skip_solib_resolver): Update.
* p-valprint.c (pascal_val_print): Update.
* parse.c (write_exp_msymbol): Update.
* ppc-linux-tdep.c (powerpc_linux_in_dynsym_resolve_code)
(ppc_linux_spe_context_lookup, ppc_elfv2_skip_entrypoint): Update.
* ppc-sysv-tdep.c (convert_code_addr_to_desc_addr): Update.
* printcmd.c (build_address_symbolic): Update.
(sym_info): Update.
(address_info): Update.
* proc-service.c (ps_pglobal_lookup): Update.
* psymtab.c (find_pc_sect_psymtab_closer): Update.
(find_pc_sect_psymtab): Update.
* python/py-framefilter.c (py_print_frame): Update.
* ravenscar-thread.c (get_running_thread_id): Update.
* record-btrace.c (btrace_call_history, btrace_get_bfun_name):
Update.
* remote.c (remote_check_symbols): Update.
* rs6000-tdep.c (rs6000_skip_main_prologue): Update.
(rs6000_skip_trampoline_code): Update.
* sh64-tdep.c (sh64_elf_make_msymbol_special): Update.
* sol2-tdep.c (sol2_skip_solib_resolver): Update.
* solib-dsbt.c (lm_base): Update.
* solib-frv.c (lm_base): Update.
(main_got): Update.
* solib-irix.c (locate_base): Update.
* solib-som.c (som_solib_create_inferior_hook): Update.
(som_solib_desire_dynamic_linker_symbols): Update.
(link_map_start): Update.
* solib-spu.c (spu_enable_break): Update.
(ocl_enable_break): Update.
* solib-svr4.c (elf_locate_base): Update.
(enable_break): Update.
* spu-tdep.c (spu_get_overlay_table): Update.
(spu_catch_start): Update.
(flush_ea_cache): Update.
* stabsread.c (define_symbol): Update.
(scan_file_globals): Update.
* stack.c (find_frame_funname): Update.
(frame_info): Update.
* symfile.c (simple_read_overlay_table): Update.
(simple_overlay_update): Update.
* symmisc.c (dump_msymbols): Update.
* symtab.c (fixup_section): Update.
(find_pc_sect_line): Update.
(skip_prologue_sal): Update.
(search_symbols): Update.
(print_msymbol_info): Update.
(rbreak_command): Update.
(MCOMPLETION_LIST_ADD_SYMBOL): New macro.
(completion_list_objc_symbol): Update.
(default_make_symbol_completion_list_break_on): Update.
* tracepoint.c (scope_info): Update.
* tui/tui-disasm.c (tui_find_disassembly_address): Update.
(tui_get_begin_asm_address): Update.
* valops.c (find_function_in_inferior): Update.
* value.c (value_static_field): Update.
(value_fn_field): Update.
Diffstat (limited to 'gdb/minsyms.c')
-rw-r--r-- | gdb/minsyms.c | 115 |
1 files changed, 58 insertions, 57 deletions
diff --git a/gdb/minsyms.c b/gdb/minsyms.c index 0981e3d..aad7685 100644 --- a/gdb/minsyms.c +++ b/gdb/minsyms.c @@ -116,7 +116,7 @@ add_minsym_to_hash_table (struct minimal_symbol *sym, if (sym->hash_next == NULL) { unsigned int hash - = msymbol_hash (SYMBOL_LINKAGE_NAME (sym)) % MINIMAL_SYMBOL_HASH_SIZE; + = msymbol_hash (MSYMBOL_LINKAGE_NAME (sym)) % MINIMAL_SYMBOL_HASH_SIZE; sym->hash_next = table[hash]; table[hash] = sym; @@ -131,7 +131,7 @@ add_minsym_to_demangled_hash_table (struct minimal_symbol *sym, { if (sym->demangled_hash_next == NULL) { - unsigned int hash = msymbol_hash_iw (SYMBOL_SEARCH_NAME (sym)) + unsigned int hash = msymbol_hash_iw (MSYMBOL_SEARCH_NAME (sym)) % MINIMAL_SYMBOL_HASH_SIZE; sym->demangled_hash_next = table[hash]; @@ -221,13 +221,13 @@ lookup_minimal_symbol_internal (const char *name, const char *sfile, cmp = (case_sensitivity == case_sensitive_on ? strcmp : strcasecmp); - match = cmp (SYMBOL_LINKAGE_NAME (msymbol), + match = cmp (MSYMBOL_LINKAGE_NAME (msymbol), modified_name) == 0; } else { /* The function respects CASE_SENSITIVITY. */ - match = SYMBOL_MATCHES_SEARCH_NAME (msymbol, + match = MSYMBOL_MATCHES_SEARCH_NAME (msymbol, modified_name); } @@ -331,7 +331,7 @@ iterate_over_minimal_symbols (struct objfile *objf, const char *name, cmp = (case_sensitivity == case_sensitive_on ? strcmp : strcasecmp); while (iter) { - if (cmp (SYMBOL_LINKAGE_NAME (iter), name) == 0) + if (cmp (MSYMBOL_LINKAGE_NAME (iter), name) == 0) (*callback) (iter, user_data); iter = iter->hash_next; } @@ -341,7 +341,7 @@ iterate_over_minimal_symbols (struct objfile *objf, const char *name, iter = objf->msymbol_demangled_hash[hash]; while (iter) { - if (SYMBOL_MATCHES_SEARCH_NAME (iter, name)) + if (MSYMBOL_MATCHES_SEARCH_NAME (iter, name)) (*callback) (iter, user_data); iter = iter->demangled_hash_next; } @@ -370,7 +370,7 @@ lookup_minimal_symbol_text (const char *name, struct objfile *objf) msymbol != NULL && found_symbol == NULL; msymbol = msymbol->hash_next) { - if (strcmp (SYMBOL_LINKAGE_NAME (msymbol), name) == 0 && + if (strcmp (MSYMBOL_LINKAGE_NAME (msymbol), name) == 0 && (MSYMBOL_TYPE (msymbol) == mst_text || MSYMBOL_TYPE (msymbol) == mst_text_gnu_ifunc || MSYMBOL_TYPE (msymbol) == mst_file_text)) @@ -421,8 +421,8 @@ lookup_minimal_symbol_by_pc_name (CORE_ADDR pc, const char *name, msymbol != NULL; msymbol = msymbol->hash_next) { - if (SYMBOL_VALUE_ADDRESS (msymbol) == pc - && strcmp (SYMBOL_LINKAGE_NAME (msymbol), name) == 0) + if (MSYMBOL_VALUE_ADDRESS (msymbol) == pc + && strcmp (MSYMBOL_LINKAGE_NAME (msymbol), name) == 0) return msymbol; } } @@ -454,7 +454,7 @@ lookup_minimal_symbol_solib_trampoline (const char *name, msymbol != NULL && found_symbol == NULL; msymbol = msymbol->hash_next) { - if (strcmp (SYMBOL_LINKAGE_NAME (msymbol), name) == 0 && + if (strcmp (MSYMBOL_LINKAGE_NAME (msymbol), name) == 0 && MSYMBOL_TYPE (msymbol) == mst_solib_trampoline) return msymbol; } @@ -545,14 +545,14 @@ lookup_minimal_symbol_by_pc_section_1 (CORE_ADDR pc, Warning: this code is trickier than it would appear at first. */ /* Should also require that pc is <= end of objfile. FIXME! */ - if (pc >= SYMBOL_VALUE_ADDRESS (&msymbol[lo])) + if (pc >= MSYMBOL_VALUE_ADDRESS (&msymbol[lo])) { - while (SYMBOL_VALUE_ADDRESS (&msymbol[hi]) > pc) + while (MSYMBOL_VALUE_ADDRESS (&msymbol[hi]) > pc) { /* pc is still strictly less than highest address. */ /* Note "new" will always be >= lo. */ new = (lo + hi) / 2; - if ((SYMBOL_VALUE_ADDRESS (&msymbol[new]) >= pc) || + if ((MSYMBOL_VALUE_ADDRESS (&msymbol[new]) >= pc) || (lo == new)) { hi = new; @@ -567,8 +567,8 @@ lookup_minimal_symbol_by_pc_section_1 (CORE_ADDR pc, hi to point to the last one. That way we can find the right symbol if it has an index greater than hi. */ while (hi < objfile->minimal_symbol_count - 1 - && (SYMBOL_VALUE_ADDRESS (&msymbol[hi]) - == SYMBOL_VALUE_ADDRESS (&msymbol[hi + 1]))) + && (MSYMBOL_VALUE_ADDRESS (&msymbol[hi]) + == MSYMBOL_VALUE_ADDRESS (&msymbol[hi + 1]))) hi++; /* Skip various undesirable symbols. */ @@ -598,9 +598,9 @@ lookup_minimal_symbol_by_pc_section_1 (CORE_ADDR pc, /* Some types of debug info, such as COFF, don't fill the bfd_section member, so don't throw away symbols on those platforms. */ - && SYMBOL_OBJ_SECTION (objfile, &msymbol[hi]) != NULL + && MSYMBOL_OBJ_SECTION (objfile, &msymbol[hi]) != NULL && (!matching_obj_sections - (SYMBOL_OBJ_SECTION (objfile, &msymbol[hi]), + (MSYMBOL_OBJ_SECTION (objfile, &msymbol[hi]), section))) { hi--; @@ -616,10 +616,10 @@ lookup_minimal_symbol_by_pc_section_1 (CORE_ADDR pc, && MSYMBOL_TYPE (&msymbol[hi - 1]) == want_type && (MSYMBOL_SIZE (&msymbol[hi]) == MSYMBOL_SIZE (&msymbol[hi - 1])) - && (SYMBOL_VALUE_ADDRESS (&msymbol[hi]) - == SYMBOL_VALUE_ADDRESS (&msymbol[hi - 1])) - && (SYMBOL_OBJ_SECTION (objfile, &msymbol[hi]) - == SYMBOL_OBJ_SECTION (objfile, &msymbol[hi - 1]))) + && (MSYMBOL_VALUE_ADDRESS (&msymbol[hi]) + == MSYMBOL_VALUE_ADDRESS (&msymbol[hi - 1])) + && (MSYMBOL_OBJ_SECTION (objfile, &msymbol[hi]) + == MSYMBOL_OBJ_SECTION (objfile, &msymbol[hi - 1]))) { hi--; continue; @@ -646,9 +646,9 @@ lookup_minimal_symbol_by_pc_section_1 (CORE_ADDR pc, the cancellable variants, but both have sizes. */ if (hi > 0 && MSYMBOL_SIZE (&msymbol[hi]) != 0 - && pc >= (SYMBOL_VALUE_ADDRESS (&msymbol[hi]) + && pc >= (MSYMBOL_VALUE_ADDRESS (&msymbol[hi]) + MSYMBOL_SIZE (&msymbol[hi])) - && pc < (SYMBOL_VALUE_ADDRESS (&msymbol[hi - 1]) + && pc < (MSYMBOL_VALUE_ADDRESS (&msymbol[hi - 1]) + MSYMBOL_SIZE (&msymbol[hi - 1]))) { hi--; @@ -678,7 +678,7 @@ lookup_minimal_symbol_by_pc_section_1 (CORE_ADDR pc, if (hi >= 0 && MSYMBOL_SIZE (&msymbol[hi]) != 0 - && pc >= (SYMBOL_VALUE_ADDRESS (&msymbol[hi]) + && pc >= (MSYMBOL_VALUE_ADDRESS (&msymbol[hi]) + MSYMBOL_SIZE (&msymbol[hi]))) { if (best_zero_sized != -1) @@ -694,8 +694,8 @@ lookup_minimal_symbol_by_pc_section_1 (CORE_ADDR pc, if (hi >= 0 && ((best_symbol == NULL) || - (SYMBOL_VALUE_ADDRESS (best_symbol) < - SYMBOL_VALUE_ADDRESS (&msymbol[hi])))) + (MSYMBOL_VALUE_ADDRESS (best_symbol) < + MSYMBOL_VALUE_ADDRESS (&msymbol[hi])))) { best_symbol = &msymbol[hi]; best_objfile = objfile; @@ -826,7 +826,7 @@ lookup_minimal_symbol_and_objfile (const char *name) msym != NULL; msym = msym->hash_next) { - if (strcmp (SYMBOL_LINKAGE_NAME (msym), name) == 0) + if (strcmp (MSYMBOL_LINKAGE_NAME (msym), name) == 0) { result.minsym = msym; result.objfile = objfile; @@ -941,11 +941,11 @@ prim_record_minimal_symbol_full (const char *name, int name_len, int copy_name, msym_bunch = new; } msymbol = &msym_bunch->contents[msym_bunch_index]; - SYMBOL_SET_LANGUAGE (msymbol, language_auto, &objfile->objfile_obstack); - SYMBOL_SET_NAMES (msymbol, name, name_len, copy_name, objfile); + MSYMBOL_SET_LANGUAGE (msymbol, language_auto, &objfile->objfile_obstack); + MSYMBOL_SET_NAMES (msymbol, name, name_len, copy_name, objfile); - SYMBOL_VALUE_ADDRESS (msymbol) = address; - SYMBOL_SECTION (msymbol) = section; + MSYMBOL_VALUE_ADDRESS (msymbol) = address; + MSYMBOL_SECTION (msymbol) = section; MSYMBOL_TYPE (msymbol) = ms_type; MSYMBOL_TARGET_FLAG_1 (msymbol) = 0; @@ -991,19 +991,19 @@ compare_minimal_symbols (const void *fn1p, const void *fn2p) fn1 = (const struct minimal_symbol *) fn1p; fn2 = (const struct minimal_symbol *) fn2p; - if (SYMBOL_VALUE_ADDRESS (fn1) < SYMBOL_VALUE_ADDRESS (fn2)) + if (MSYMBOL_VALUE_ADDRESS (fn1) < MSYMBOL_VALUE_ADDRESS (fn2)) { return (-1); /* addr 1 is less than addr 2. */ } - else if (SYMBOL_VALUE_ADDRESS (fn1) > SYMBOL_VALUE_ADDRESS (fn2)) + else if (MSYMBOL_VALUE_ADDRESS (fn1) > MSYMBOL_VALUE_ADDRESS (fn2)) { return (1); /* addr 1 is greater than addr 2. */ } else /* addrs are equal: sort by name */ { - const char *name1 = SYMBOL_LINKAGE_NAME (fn1); - const char *name2 = SYMBOL_LINKAGE_NAME (fn2); + const char *name1 = MSYMBOL_LINKAGE_NAME (fn1); + const char *name2 = MSYMBOL_LINKAGE_NAME (fn2); if (name1 && name2) /* both have names */ return strcmp (name1, name2); @@ -1095,10 +1095,10 @@ compact_minimal_symbols (struct minimal_symbol *msymbol, int mcount, copyfrom = copyto = msymbol; while (copyfrom < msymbol + mcount - 1) { - if (SYMBOL_VALUE_ADDRESS (copyfrom) - == SYMBOL_VALUE_ADDRESS ((copyfrom + 1)) - && strcmp (SYMBOL_LINKAGE_NAME (copyfrom), - SYMBOL_LINKAGE_NAME ((copyfrom + 1))) == 0) + if (MSYMBOL_VALUE_ADDRESS (copyfrom) + == MSYMBOL_VALUE_ADDRESS ((copyfrom + 1)) + && strcmp (MSYMBOL_LINKAGE_NAME (copyfrom), + MSYMBOL_LINKAGE_NAME ((copyfrom + 1))) == 0) { if (MSYMBOL_TYPE ((copyfrom + 1)) == mst_unknown) { @@ -1141,7 +1141,7 @@ build_minimal_symbol_hash_tables (struct objfile *objfile) add_minsym_to_hash_table (msym, objfile->msymbol_hash); msym->demangled_hash_next = 0; - if (SYMBOL_SEARCH_NAME (msym) != SYMBOL_LINKAGE_NAME (msym)) + if (MSYMBOL_SEARCH_NAME (msym) != MSYMBOL_LINKAGE_NAME (msym)) add_minsym_to_demangled_hash_table (msym, objfile->msymbol_demangled_hash); } @@ -1277,7 +1277,7 @@ terminate_minimal_symbol_table (struct objfile *objfile) memset (m, 0, sizeof (*m)); /* Don't rely on these enumeration values being 0's. */ MSYMBOL_TYPE (m) = mst_unknown; - SYMBOL_SET_LANGUAGE (m, language_unknown, &objfile->objfile_obstack); + MSYMBOL_SET_LANGUAGE (m, language_unknown, &objfile->objfile_obstack); } } @@ -1334,24 +1334,24 @@ find_solib_trampoline_target (struct frame_info *frame, CORE_ADDR pc) { if ((MSYMBOL_TYPE (msymbol) == mst_text || MSYMBOL_TYPE (msymbol) == mst_text_gnu_ifunc) - && strcmp (SYMBOL_LINKAGE_NAME (msymbol), - SYMBOL_LINKAGE_NAME (tsymbol)) == 0) - return SYMBOL_VALUE_ADDRESS (msymbol); + && strcmp (MSYMBOL_LINKAGE_NAME (msymbol), + MSYMBOL_LINKAGE_NAME (tsymbol)) == 0) + return MSYMBOL_VALUE_ADDRESS (msymbol); /* Also handle minimal symbols pointing to function descriptors. */ if (MSYMBOL_TYPE (msymbol) == mst_data - && strcmp (SYMBOL_LINKAGE_NAME (msymbol), - SYMBOL_LINKAGE_NAME (tsymbol)) == 0) + && strcmp (MSYMBOL_LINKAGE_NAME (msymbol), + MSYMBOL_LINKAGE_NAME (tsymbol)) == 0) { CORE_ADDR func; func = gdbarch_convert_from_func_ptr_addr (get_objfile_arch (objfile), - SYMBOL_VALUE_ADDRESS (msymbol), + MSYMBOL_VALUE_ADDRESS (msymbol), ¤t_target); /* Ignore data symbols that are not function descriptors. */ - if (func != SYMBOL_VALUE_ADDRESS (msymbol)) + if (func != MSYMBOL_VALUE_ADDRESS (msymbol)) return func; } } @@ -1377,25 +1377,26 @@ minimal_symbol_upper_bound (struct bound_minimal_symbol minsym) of the section, as the end of the function. */ if (MSYMBOL_SIZE (minsym.minsym) != 0) - return SYMBOL_VALUE_ADDRESS (minsym.minsym) + MSYMBOL_SIZE (minsym.minsym); + return MSYMBOL_VALUE_ADDRESS (minsym.minsym) + MSYMBOL_SIZE (minsym.minsym); /* Step over other symbols at this same address, and symbols in other sections, to find the next symbol in this section with a different address. */ msymbol = minsym.minsym; - section = SYMBOL_SECTION (msymbol); - for (i = 1; SYMBOL_LINKAGE_NAME (msymbol + i) != NULL; i++) + section = MSYMBOL_SECTION (msymbol); + for (i = 1; MSYMBOL_LINKAGE_NAME (msymbol + i) != NULL; i++) { - if (SYMBOL_VALUE_ADDRESS (msymbol + i) != SYMBOL_VALUE_ADDRESS (msymbol) - && SYMBOL_SECTION (msymbol + i) == section) + if (MSYMBOL_VALUE_ADDRESS (msymbol + i) != MSYMBOL_VALUE_ADDRESS (msymbol) + && MSYMBOL_SECTION (msymbol + i) == section) break; } - obj_section = SYMBOL_OBJ_SECTION (minsym.objfile, minsym.minsym); - if (SYMBOL_LINKAGE_NAME (msymbol + i) != NULL - && SYMBOL_VALUE_ADDRESS (msymbol + i) < obj_section_endaddr (obj_section)) - result = SYMBOL_VALUE_ADDRESS (msymbol + i); + obj_section = MSYMBOL_OBJ_SECTION (minsym.objfile, minsym.minsym); + if (MSYMBOL_LINKAGE_NAME (msymbol + i) != NULL + && (MSYMBOL_VALUE_ADDRESS (msymbol + i) + < obj_section_endaddr (obj_section))) + result = MSYMBOL_VALUE_ADDRESS (msymbol + i); else /* We got the start address from the last msymbol in the objfile. So the end address is the end of the section. */ |