ThreadPlanTracer.h revision 745ac7a5826fe7c392007941a4046bfb1a8dff81
1//===-- ThreadPlanTracer.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_ThreadPlanTracer_h_ 11#define liblldb_ThreadPlanTracer_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/Target/Thread.h" 19 20namespace lldb_private { 21 22class ThreadPlanTracer 23{ 24friend class ThreadPlan; 25 26public: 27 ThreadPlanTracer (Thread &thread, lldb::StreamSP &stream_sp); 28 ThreadPlanTracer (Thread &thread); 29 30 virtual ~ThreadPlanTracer() 31 { 32 } 33 34 bool 35 EnableTracing(bool value) 36 { 37 bool old_value = m_enabled; 38 m_enabled = value; 39 return old_value; 40 } 41 42 bool 43 TracingEnabled() 44 { 45 return m_enabled; 46 } 47 48 bool 49 EnableSingleStep (bool value) 50 { 51 bool old_value = m_single_step; 52 m_single_step = value; 53 return old_value; 54 } 55 56 bool 57 SingleStepEnabled () 58 { 59 return m_single_step; 60 } 61 62protected: 63 Thread &m_thread; 64 65 Stream * 66 GetLogStream (); 67 68 virtual void Log(); 69 70private: 71 bool 72 TracerExplainsStop (); 73 74 bool m_single_step; 75 bool m_enabled; 76 lldb::StreamSP m_stream_sp; 77}; 78 79} // namespace lldb_private 80 81#endif // liblldb_ThreadPlanTracer_h_ 82