1 //===-- ThreadPlanTracer.h --------------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef liblldb_ThreadPlanTracer_h_
11 #define liblldb_ThreadPlanTracer_h_
15 // Other libraries and framework includes
17 #include "lldb/lldb-private.h"
18 #include "lldb/Core/RegisterValue.h"
19 #include "lldb/Symbol/TaggedASTType.h"
20 #include "lldb/Target/Thread.h"
22 namespace lldb_private {
24 class ThreadPlanTracer
26 friend class ThreadPlan;
30 typedef enum ThreadPlanTracerStyle
36 } ThreadPlanTracerStyle;
37 ThreadPlanTracer (Thread &thread, lldb::StreamSP &stream_sp);
38 ThreadPlanTracer (Thread &thread);
40 virtual ~ThreadPlanTracer()
44 virtual void TracingStarted ()
49 virtual void TracingEnded ()
55 EnableTracing(bool value)
57 bool old_value = m_enabled;
59 if (old_value == false && value == true)
61 else if (old_value == true && value == false)
74 EnableSingleStep (bool value)
76 bool old_value = m_single_step;
77 m_single_step = value;
99 TracerExplainsStop ();
103 lldb::StreamSP m_stream_sp;
106 class ThreadPlanAssemblyTracer : public ThreadPlanTracer
109 ThreadPlanAssemblyTracer (Thread &thread, lldb::StreamSP &stream_sp);
110 ThreadPlanAssemblyTracer (Thread &thread);
111 virtual ~ThreadPlanAssemblyTracer ();
112 virtual void TracingStarted ();
113 virtual void TracingEnded ();
123 lldb::DisassemblerSP m_disassembler_sp;
124 TypeFromUser m_intptr_type;
125 std::vector<RegisterValue> m_register_values;
126 lldb::DataBufferSP m_buffer_sp;
129 } // namespace lldb_private
131 #endif // liblldb_ThreadPlanTracer_h_