summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/Thread.cpp
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2010-09-28 01:25:32 +0000
committerJim Ingham <jingham@apple.com>2010-09-28 01:25:32 +0000
commit5a369128f66b30f8ce003c641dc40be0e87c09ca (patch)
tree8ad8a725e41d77a94fc92b8ec66cd91dfa056560 /lldb/source/Target/Thread.cpp
parent7990df1ae259f218e1bcdfce24ecc932697cf061 (diff)
downloadbcm5719-llvm-5a369128f66b30f8ce003c641dc40be0e87c09ca.tar.gz
bcm5719-llvm-5a369128f66b30f8ce003c641dc40be0e87c09ca.zip
Replace the vestigial Value::GetOpaqueCLangQualType with the more correct Value::GetValueOpaqueClangQualType.
But mostly, move the ObjC Trampoline handling code from the MacOSX dyld plugin to the AppleObjCRuntime classes. llvm-svn: 114935
Diffstat (limited to 'lldb/source/Target/Thread.cpp')
-rw-r--r--lldb/source/Target/Thread.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/lldb/source/Target/Thread.cpp b/lldb/source/Target/Thread.cpp
index d4fbfdf3bfb..fb4ad9a3bf2 100644
--- a/lldb/source/Target/Thread.cpp
+++ b/lldb/source/Target/Thread.cpp
@@ -16,6 +16,7 @@
#include "lldb/Host/Host.h"
#include "lldb/Target/DynamicLoader.h"
#include "lldb/Target/ExecutionContext.h"
+#include "lldb/Target/ObjCLanguageRuntime.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/RegisterContext.h"
#include "lldb/Target/StopInfo.h"
@@ -662,7 +663,16 @@ Thread::QueueThreadPlanForStepOut (bool abort_other_plans, SymbolContext *addr_c
ThreadPlan *
Thread::QueueThreadPlanForStepThrough (bool abort_other_plans, bool stop_other_threads)
{
+ // Try the dynamic loader first:
ThreadPlanSP thread_plan_sp(GetProcess().GetDynamicLoader()->GetStepThroughTrampolinePlan (*this, stop_other_threads));
+ // If that didn't come up with anything, try the ObjC runtime plugin:
+ if (thread_plan_sp.get() == NULL)
+ {
+ ObjCLanguageRuntime *objc_runtime = GetProcess().GetObjCLanguageRuntime();
+ if (objc_runtime)
+ thread_plan_sp = objc_runtime->GetStepThroughTrampolinePlan (*this, stop_other_threads);
+ }
+
if (thread_plan_sp.get() == NULL)
{
thread_plan_sp.reset(new ThreadPlanStepThrough (*this, stop_other_threads));
OpenPOWER on IntegriCloud