diff options
Diffstat (limited to 'lldb/source/Target/Target.cpp')
-rw-r--r-- | lldb/source/Target/Target.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp index bbc41be9f8c..f8e54aec57e 100644 --- a/lldb/source/Target/Target.cpp +++ b/lldb/source/Target/Target.cpp @@ -708,7 +708,7 @@ Target::CalculateStackFrame () } void -Target::Calculate (ExecutionContext &exe_ctx) +Target::CalculateExecutionContext (ExecutionContext &exe_ctx) { exe_ctx.target = this; exe_ctx.process = NULL; // Do NOT fill in process... @@ -794,6 +794,25 @@ Target::SetDefaultArchitecture (ArchSpec new_arch) lldb::eVarSetOperationAssign, false, "[]"); } +Target * +Target::GetTargetFromContexts (const ExecutionContext *exe_ctx_ptr, const SymbolContext *sc_ptr) +{ + // The target can either exist in the "process" of ExecutionContext, or in + // the "target_sp" member of SymbolContext. This accessor helper function + // will get the target from one of these locations. + + Target *target = NULL; + if (sc_ptr != NULL) + target = sc_ptr->target_sp.get(); + if (target == NULL) + { + if (exe_ctx_ptr != NULL && exe_ctx_ptr->process != NULL) + target = &exe_ctx_ptr->process->GetTarget(); + } + return target; +} + + void Target::UpdateInstanceName () { |