summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2010-12-10 00:26:25 +0000
committerJim Ingham <jingham@apple.com>2010-12-10 00:26:25 +0000
commit957373fc8455a1d0ec34028b6e2a9cfe8a1d4bd0 (patch)
tree85fee849d41f882c0af6ffc620f1a015cae42967 /lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h
parent648fcbef5b99878277c8cb1c799074392ba4b596 (diff)
downloadbcm5719-llvm-957373fc8455a1d0ec34028b6e2a9cfe8a1d4bd0.tar.gz
bcm5719-llvm-957373fc8455a1d0ec34028b6e2a9cfe8a1d4bd0.zip
Changing the ObjC find method implementation to use a ClangUtilityFunction inserted into the target. Consolidate all the
logic for finding the target of a method dispatch into this function, insert & call it. Gets calls to super, and all the fixup & fixedup variants working properly. Also gets the class from the object so that we step through KVO wrapper methods into the actual user code. llvm-svn: 121437
Diffstat (limited to 'lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h')
-rw-r--r--lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h25
1 files changed, 12 insertions, 13 deletions
diff --git a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h
index 512a8dbcd1e..e2d2ebc9043 100644
--- a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h
+++ b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h
@@ -29,12 +29,12 @@ public:
// Constructors and Destructors
//------------------------------------------------------------------
AppleThreadPlanStepThroughObjCTrampoline(Thread &thread,
- AppleObjCTrampolineHandler *trampoline_handler,
- lldb::addr_t args_addr,
- lldb::addr_t object_ptr,
- lldb::addr_t class_ptr,
- lldb::addr_t sel_ptr,
- bool stop_others);
+ AppleObjCTrampolineHandler *trampoline_handler,
+ lldb::addr_t args_addr,
+ lldb::addr_t object_addr,
+ lldb::addr_t isa_addr,
+ lldb::addr_t sel_addr,
+ bool stop_others);
virtual ~AppleThreadPlanStepThroughObjCTrampoline();
@@ -77,18 +77,17 @@ private:
//------------------------------------------------------------------
// For AppleThreadPlanStepThroughObjCTrampoline only
//------------------------------------------------------------------
- bool m_stop_others;
- lldb::addr_t m_object_ptr;
- lldb::addr_t m_class_ptr;
- lldb::addr_t m_sel_ptr;
-
+ AppleObjCTrampolineHandler *m_trampoline_handler; // FIXME - ensure this doesn't go away on us? SP maybe?
+ lldb::addr_t m_args_addr; // Stores the address for our step through function result structure.
+ lldb::addr_t m_object_addr; // This is only for Description.
+ lldb::addr_t m_isa_addr; // isa_addr and sel_addr are the keys we will use to cache the implementation.
+ lldb::addr_t m_sel_addr;
ThreadPlanSP m_func_sp; // This is the function call plan. We fill it at start, then set it
// to NULL when this plan is done. That way we know to go to:
- lldb::addr_t m_args_addr; // Stores the address for our step through function result structure.
ThreadPlanSP m_run_to_sp; // The plan that runs to the target.
- AppleObjCTrampolineHandler *m_objc_trampoline_handler;
ClangFunction *m_impl_function; // This is a pointer to a impl function that
// is owned by the client that pushes this plan.
+ bool m_stop_others;
};
} // namespace lldb_private
OpenPOWER on IntegriCloud