diff --git a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp --- a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp +++ b/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; diff --git a/lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp b/lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp --- a/lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp +++ b/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;