From 7cfa3f39ada3a8c2ac875e4fdd10a8be65c968b7 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Mon, 21 Jun 2021 15:34:07 +0200 Subject: [PATCH] [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. --- gdb/psymtab.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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; } -- 2.47.2