From: Tom de Vries Date: Mon, 21 Jun 2021 13:34:07 +0000 (+0200) Subject: [gdb/symtab] Fixup psymbol_functions::find_pc_sect_psymtab X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7cfa3f39ada3a8c2ac875e4fdd10a8be65c968b7;p=thirdparty%2Fbinutils-gdb.git [gdb/symtab] Fixup psymbol_functions::find_pc_sect_psymtab When calling psymbol_functions::find_pc_sect_psymtab, we do not end up with an actual symbol that we can declare interesting, so go find it. --- diff --git a/gdb/psymtab.c b/gdb/psymtab.c index 568e673f891..3e0f7e721b7 100644 --- a/gdb/psymtab.c +++ b/gdb/psymtab.c @@ -198,12 +198,13 @@ psymbol_functions::find_pc_sect_psymtab (struct objfile *objfile, pc - baseaddr)); if (pst != NULL) { + struct partial_symbol *p = nullptr; + /* FIXME: addrmaps currently do not handle overlayed sections, so fall back to the non-addrmap case if we're debugging overlays and the addrmap returned the wrong section. */ if (overlay_debugging && msymbol.minsym != NULL && section != NULL) { - struct partial_symbol *p; /* NOTE: This assumes that every psymbol has a corresponding msymbol, which is not necessarily @@ -224,6 +225,8 @@ psymbol_functions::find_pc_sect_psymtab (struct objfile *objfile, granularity and FIND_PC_SECT_PSYMTAB_CLOSER may mislead us into a worse chosen section due to the TEXTLOW/TEXTHIGH ranges overlap. */ + if (lazy_expand_symtab_p && p == nullptr) + p = find_pc_sect_psymbol (objfile, pst, pc, section); return pst; }