From 14f1b3e8826ce43b978db93a62d1166055db5394 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Mon, 2 Jan 2017 19:26:05 +0000 Subject: Vendor import of lldb trunk r290819: https://llvm.org/svn/llvm-project/lldb/trunk@290819 --- .../AppleThreadPlanStepThroughObjCTrampoline.h | 118 +++++++++------------ 1 file changed, 52 insertions(+), 66 deletions(-) (limited to 'source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h') diff --git a/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h b/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h index 8db9963fa51a..60c8b92d9cc7 100644 --- a/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h +++ b/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h @@ -14,80 +14,66 @@ // C++ Includes // Other libraries and framework includes // Project includes -#include "lldb/lldb-types.h" -#include "lldb/lldb-enumerations.h" +#include "AppleObjCTrampolineHandler.h" #include "lldb/Core/Value.h" #include "lldb/Target/ThreadPlan.h" -#include "AppleObjCTrampolineHandler.h" +#include "lldb/lldb-enumerations.h" +#include "lldb/lldb-types.h" -namespace lldb_private -{ +namespace lldb_private { -class AppleThreadPlanStepThroughObjCTrampoline : public ThreadPlan -{ +class AppleThreadPlanStepThroughObjCTrampoline : public ThreadPlan { public: - AppleThreadPlanStepThroughObjCTrampoline(Thread &thread, - AppleObjCTrampolineHandler *trampoline_handler, - ValueList &values, - lldb::addr_t isa_addr, - lldb::addr_t sel_addr, - bool stop_others); - - ~AppleThreadPlanStepThroughObjCTrampoline() override; - - static bool - PreResumeInitializeFunctionCaller(void *myself); - - void - GetDescription(Stream *s, - lldb::DescriptionLevel level) override; - - bool - ValidatePlan(Stream *error) override; - - lldb::StateType - GetPlanRunState() override; - - bool - ShouldStop(Event *event_ptr) override; - - bool - StopOthers() override - { - return m_stop_others; - } - - // The base class MischiefManaged does some cleanup - so you have to call it - // in your MischiefManaged derived class. - bool - MischiefManaged() override; - - void - DidPush() override; - - bool - WillStop() override; + AppleThreadPlanStepThroughObjCTrampoline( + Thread &thread, AppleObjCTrampolineHandler *trampoline_handler, + ValueList &values, lldb::addr_t isa_addr, lldb::addr_t sel_addr, + bool stop_others); + + ~AppleThreadPlanStepThroughObjCTrampoline() override; + + static bool PreResumeInitializeFunctionCaller(void *myself); + + void GetDescription(Stream *s, lldb::DescriptionLevel level) override; + + bool ValidatePlan(Stream *error) override; + + lldb::StateType GetPlanRunState() override; + + bool ShouldStop(Event *event_ptr) override; + + bool StopOthers() override { return m_stop_others; } + + // The base class MischiefManaged does some cleanup - so you have to call it + // in your MischiefManaged derived class. + bool MischiefManaged() override; + + void DidPush() override; + + bool WillStop() override; protected: - bool - DoPlanExplainsStop(Event *event_ptr) override; - + bool DoPlanExplainsStop(Event *event_ptr) override; + private: - bool - InitializeFunctionCaller (); - - 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. - ValueList m_input_values; - 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; - lldb::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::ThreadPlanSP m_run_to_sp; // The plan that runs to the target. - FunctionCaller *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; + bool InitializeFunctionCaller(); + + 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. + ValueList m_input_values; + 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; + lldb::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::ThreadPlanSP m_run_to_sp; // The plan that runs to the target. + FunctionCaller *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 -- cgit v1.2.3