[Lldb-commits] [lldb] [LLDB] Support Auxiliary library in ELF format (PR #208905)
via lldb-commits
lldb-commits at lists.llvm.org
Mon Aug 24 16:56:39 PDT 2026
================
@@ -340,14 +340,12 @@ BreakpointResolverName::SearchCallback(SearchFilter &filter,
break_addr.Slide(prologue_byte_size);
}
} else if (sc.symbol) {
- if (sc.symbol->GetType() == eSymbolTypeReExported) {
- const Symbol *actual_symbol =
- sc.symbol->ResolveReExportedSymbol(breakpoint.GetTarget());
- if (actual_symbol) {
- is_reexported = true;
- break_addr = actual_symbol->GetAddress();
- }
- } else {
+ const Symbol *actual_symbol = sc.symbol->ResolveReExportedSymbol(
+ breakpoint.GetTarget(), sc.module_sp);
+ if (actual_symbol) {
+ is_reexported = true;
+ break_addr = actual_symbol->GetAddress();
+ } else if (sc.symbol->GetType() != eSymbolTypeReExported) {
----------------
aokblast wrote:
This model doesn't perfectly match the ELF specification. In Mach-O, each ReExportedSymbol has a per-symbol tag, so every symbol knows which filtee it comes from. In ELF, however, it behaves more like a list that defines libraries whose symbols can override the current symbol. If a symbol is found in one of the filtees, rtld uses it.
As a result, there is no way to correctly determine whether a symbol is eSymbolTypeReExported without consulting the resolver each time.
https://github.com/llvm/llvm-project/pull/208905
More information about the lldb-commits
mailing list