xiaobai created this revision. xiaobai added reviewers: compnerd, JDevlieghere, davide, labath.
SymbolsDidLoad is currently only implemented for ObjCLanguageRuntime, but that doesn't mean that it couldn't be useful for other Langauges. Although this change seems like it's generalizing for the sake of purity, this removes Target's dependency on ObjCLanguageRuntime. https://reviews.llvm.org/D62796 Files: include/lldb/Target/LanguageRuntime.h include/lldb/Target/ObjCLanguageRuntime.h source/Target/Target.cpp Index: source/Target/Target.cpp =================================================================== --- source/Target/Target.cpp +++ 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,12 +1667,9 @@ 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; + if (LanguageRuntime *objc_runtime = + m_process_sp->GetLanguageRuntime(lldb::eLanguageTypeObjC)) objc_runtime->SymbolsDidLoad(module_list); - } } m_breakpoint_list.UpdateBreakpoints(module_list, true, false); Index: include/lldb/Target/ObjCLanguageRuntime.h =================================================================== --- include/lldb/Target/ObjCLanguageRuntime.h +++ include/lldb/Target/ObjCLanguageRuntime.h @@ -282,7 +282,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: include/lldb/Target/LanguageRuntime.h =================================================================== --- include/lldb/Target/LanguageRuntime.h +++ 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: source/Target/Target.cpp =================================================================== --- source/Target/Target.cpp +++ 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,12 +1667,9 @@ 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; + if (LanguageRuntime *objc_runtime = + m_process_sp->GetLanguageRuntime(lldb::eLanguageTypeObjC)) objc_runtime->SymbolsDidLoad(module_list); - } } m_breakpoint_list.UpdateBreakpoints(module_list, true, false); Index: include/lldb/Target/ObjCLanguageRuntime.h =================================================================== --- include/lldb/Target/ObjCLanguageRuntime.h +++ include/lldb/Target/ObjCLanguageRuntime.h @@ -282,7 +282,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: include/lldb/Target/LanguageRuntime.h =================================================================== --- include/lldb/Target/LanguageRuntime.h +++ 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;
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits