diff --git a/lldb/include/lldb/Target/ThreadPlanCallFunction.h b/lldb/include/lldb/Target/ThreadPlanCallFunction.h index 2ef39e65249f..f9dfaa26cfc1 100644 --- a/lldb/include/lldb/Target/ThreadPlanCallFunction.h +++ b/lldb/include/lldb/Target/ThreadPlanCallFunction.h @@ -69,6 +69,9 @@ public: { return true; } + + virtual void + WillPop (); protected: private: diff --git a/lldb/source/Target/ThreadPlanCallFunction.cpp b/lldb/source/Target/ThreadPlanCallFunction.cpp index a662ea0589dc..9619f56bb35a 100644 --- a/lldb/source/Target/ThreadPlanCallFunction.cpp +++ b/lldb/source/Target/ThreadPlanCallFunction.cpp @@ -128,6 +128,13 @@ ThreadPlanCallFunction::DoTakedown () ClearBreakpoints(); } +void +ThreadPlanCallFunction::WillPop () +{ + if (m_valid && !IsPlanComplete()) + DoTakedown(); +} + void ThreadPlanCallFunction::GetDescription (Stream *s, lldb::DescriptionLevel level) {