ThreadPlanCallUserExpression.h revision 263367
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 23#include "llvm/ADT/ArrayRef.h" 24 25namespace lldb_private { 26 27class ThreadPlanCallUserExpression : public ThreadPlanCallFunction 28{ 29public: 30 ThreadPlanCallUserExpression (Thread &thread, 31 Address &function, 32 llvm::ArrayRef<lldb::addr_t> args, 33 const EvaluateExpressionOptions &options, 34 ClangUserExpression::ClangUserExpressionSP &user_expression_sp); 35 36 virtual 37 ~ThreadPlanCallUserExpression (); 38 39 virtual void 40 GetDescription (Stream *s, lldb::DescriptionLevel level); 41 42 virtual void 43 WillPop () 44 { 45 ThreadPlanCallFunction::WillPop(); 46 if (m_user_expression_sp) 47 m_user_expression_sp.reset(); 48 } 49 50 virtual lldb::StopInfoSP 51 GetRealStopInfo(); 52 53protected: 54private: 55 ClangUserExpression::ClangUserExpressionSP m_user_expression_sp; // This is currently just used to ensure the 56 // User expression the initiated this ThreadPlan 57 // lives as long as the thread plan does. 58 DISALLOW_COPY_AND_ASSIGN (ThreadPlanCallUserExpression); 59}; 60 61} // namespace lldb_private 62 63#endif // liblldb_ThreadPlanCallUserExpression_h_ 64