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.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@114935 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Target/Thread.cpp b/source/Target/Thread.cpp
index d4fbfdf..fb4ad9a 100644
--- a/source/Target/Thread.cpp
+++ b/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 @@
 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));