diff options
author | Jim Ingham <jingham@apple.com> | 2010-12-10 00:26:25 +0000 |
---|---|---|
committer | Jim Ingham <jingham@apple.com> | 2010-12-10 00:26:25 +0000 |
commit | 957373fc8455a1d0ec34028b6e2a9cfe8a1d4bd0 (patch) | |
tree | 85fee849d41f882c0af6ffc620f1a015cae42967 /lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h | |
parent | 648fcbef5b99878277c8cb1c799074392ba4b596 (diff) | |
download | bcm5719-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.h | 25 |
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 |