ThreadPlanCallUserExpression.h revision ba560cc7d03c9f7d9df81e60201c5ec75cff5232
1//===-- ThreadPlanCallUserExpression.h --------------------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#ifndef liblldb_ThreadPlanCallUserExpression_h_ 11#define liblldb_ThreadPlanCallUserExpression_h_ 12 13// C Includes 14// C++ Includes 15// Other libraries and framework includes 16// Project includes 17#include "lldb/lldb-private.h" 18#include "lldb/Expression/ClangUserExpression.h" 19#include "lldb/Target/Thread.h" 20#include "lldb/Target/ThreadPlan.h" 21#include "lldb/Target/ThreadPlanCallFunction.h" 22 23namespace lldb_private { 24 25class ThreadPlanCallUserExpression : public ThreadPlanCallFunction 26{ 27public: 28 ThreadPlanCallUserExpression (Thread &thread, 29 Address &function, 30 lldb::addr_t arg, 31 bool stop_other_threads, 32 bool discard_on_error, 33 lldb::addr_t *this_arg, 34 lldb::addr_t *cmd_arg, 35 ClangUserExpression::ClangUserExpressionSP &user_expression_sp); 36 37 virtual 38 ~ThreadPlanCallUserExpression (); 39 40 virtual void 41 GetDescription (Stream *s, lldb::DescriptionLevel level); 42 43 virtual void 44 WillPop () 45 { 46 ThreadPlanCallFunction::WillPop(); 47 if (m_user_expression_sp) 48 m_user_expression_sp.reset(); 49 } 50 51 virtual lldb::StopInfoSP 52 GetRealStopInfo(); 53 54protected: 55private: 56 ClangUserExpression::ClangUserExpressionSP m_user_expression_sp; // This is currently just used to ensure the 57 // User expression the initiated this ThreadPlan 58 // lives as long as the thread plan does. 59 DISALLOW_COPY_AND_ASSIGN (ThreadPlanCallUserExpression); 60}; 61 62} // namespace lldb_private 63 64#endif // liblldb_ThreadPlanCallUserExpression_h_ 65