Index: lldb/trunk/include/lldb/Target/LanguageRuntime.h =================================================================== --- lldb/trunk/include/lldb/Target/LanguageRuntime.h +++ lldb/trunk/include/lldb/Target/LanguageRuntime.h @@ -143,6 +143,8 @@ return false; } + virtual void SymbolsDidLoad(const ModuleList &module_list) { return; } + virtual lldb::ThreadPlanSP GetStepThroughTrampolinePlan(Thread &thread, bool stop_others) = 0; Index: lldb/trunk/include/lldb/Target/ObjCLanguageRuntime.h =================================================================== --- lldb/trunk/include/lldb/Target/ObjCLanguageRuntime.h +++ lldb/trunk/include/lldb/Target/ObjCLanguageRuntime.h @@ -275,7 +275,7 @@ return (m_has_new_literals_and_indexing == eLazyBoolYes); } - virtual void SymbolsDidLoad(const ModuleList &module_list) { + void SymbolsDidLoad(const ModuleList &module_list) override { m_negative_complete_class_cache.clear(); } Index: lldb/trunk/source/Target/Target.cpp =================================================================== --- lldb/trunk/source/Target/Target.cpp +++ lldb/trunk/source/Target/Target.cpp @@ -43,7 +43,6 @@ #include "lldb/Symbol/Symbol.h" #include "lldb/Target/Language.h" #include "lldb/Target/LanguageRuntime.h" -#include "lldb/Target/ObjCLanguageRuntime.h" #include "lldb/Target/Process.h" #include "lldb/Target/SectionLoadList.h" #include "lldb/Target/StackFrame.h" @@ -1668,11 +1667,8 @@ void Target::SymbolsDidLoad(ModuleList &module_list) { if (m_valid && module_list.GetSize()) { if (m_process_sp) { - LanguageRuntime *runtime = - m_process_sp->GetLanguageRuntime(lldb::eLanguageTypeObjC); - if (runtime) { - ObjCLanguageRuntime *objc_runtime = (ObjCLanguageRuntime *)runtime; - objc_runtime->SymbolsDidLoad(module_list); + for (LanguageRuntime *runtime : m_process_sp->GetLanguageRuntimes()) { + runtime->SymbolsDidLoad(module_list); } }