aadsm updated this revision to Diff 302178. aadsm added a comment. Herald added subscribers: MaskRay, emaste. Herald added a reviewer: espindola.
Also set the symbol as external when it is weak Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D87868/new/ https://reviews.llvm.org/D87868 Files: lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp Index: lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp =================================================================== --- lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp +++ lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp @@ -48,9 +48,9 @@ ConstString("mmap"), eFunctionNameTypeFull, include_symbols, include_inlines, sc_list); const uint32_t count = sc_list.GetSize(); - if (count > 0) { + for (uint32_t i = 0; i < count; i++) { SymbolContext sc; - if (sc_list.GetContextAtIndex(0, sc)) { + if (sc_list.GetContextAtIndex(i, sc) && sc.symbol->IsExternal()) { const uint32_t range_scope = eSymbolContextFunction | eSymbolContextSymbol; const bool use_inline_block_range = false; Index: lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp =================================================================== --- lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp +++ lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp @@ -2264,8 +2264,10 @@ symbol_size_valid, // Symbol size is valid has_suffix, // Contains linker annotations? flags); // Symbol flags. - if (symbol.getBinding() == STB_WEAK) + if (symbol.getBinding() == STB_WEAK) { dc_symbol.SetIsWeak(true); + dc_symbol.SetIsExternal(true); + } symtab->AddSymbol(dc_symbol); } return i;
Index: lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp =================================================================== --- lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp +++ lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp @@ -48,9 +48,9 @@ ConstString("mmap"), eFunctionNameTypeFull, include_symbols, include_inlines, sc_list); const uint32_t count = sc_list.GetSize(); - if (count > 0) { + for (uint32_t i = 0; i < count; i++) { SymbolContext sc; - if (sc_list.GetContextAtIndex(0, sc)) { + if (sc_list.GetContextAtIndex(i, sc) && sc.symbol->IsExternal()) { const uint32_t range_scope = eSymbolContextFunction | eSymbolContextSymbol; const bool use_inline_block_range = false; Index: lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp =================================================================== --- lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp +++ lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp @@ -2264,8 +2264,10 @@ symbol_size_valid, // Symbol size is valid has_suffix, // Contains linker annotations? flags); // Symbol flags. - if (symbol.getBinding() == STB_WEAK) + if (symbol.getBinding() == STB_WEAK) { dc_symbol.SetIsWeak(true); + dc_symbol.SetIsExternal(true); + } symtab->AddSymbol(dc_symbol); } return i;
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits