ThreadPlanStepOverRange.h revision 263363
1188943Sthompsa//===-- ThreadPlanStepOverRange.h -------------------------------*- C++ -*-===//
2188943Sthompsa//
3188943Sthompsa//                     The LLVM Compiler Infrastructure
4188943Sthompsa//
5188943Sthompsa// This file is distributed under the University of Illinois Open Source
6188943Sthompsa// License. See LICENSE.TXT for details.
7188943Sthompsa//
8188943Sthompsa//===----------------------------------------------------------------------===//
9188943Sthompsa
10188943Sthompsa#ifndef liblldb_ThreadPlanStepOverRange_h_
11188943Sthompsa#define liblldb_ThreadPlanStepOverRange_h_
12188943Sthompsa
13188943Sthompsa// C Includes
14188943Sthompsa// C++ Includes
15188943Sthompsa// Other libraries and framework includes
16188943Sthompsa// Project includes
17188943Sthompsa#include "lldb/Core/AddressRange.h"
18188943Sthompsa#include "lldb/Target/StackID.h"
19188943Sthompsa#include "lldb/Target/Thread.h"
20188943Sthompsa#include "lldb/Target/ThreadPlanStepRange.h"
21188943Sthompsa
22188943Sthompsanamespace lldb_private {
23188943Sthompsa
24188943Sthompsaclass ThreadPlanStepOverRange : public ThreadPlanStepRange
25188943Sthompsa{
26188943Sthompsapublic:
27188943Sthompsa
28188943Sthompsa    ThreadPlanStepOverRange (Thread &thread,
29188943Sthompsa                             const AddressRange &range,
30188943Sthompsa                             const SymbolContext &addr_context,
31188943Sthompsa                             lldb::RunMode stop_others);
32188943Sthompsa
33188943Sthompsa    virtual ~ThreadPlanStepOverRange ();
34188943Sthompsa
35188943Sthompsa    virtual void GetDescription (Stream *s, lldb::DescriptionLevel level);
36188943Sthompsa    virtual bool ShouldStop (Event *event_ptr);
37
38protected:
39    virtual bool DoPlanExplainsStop (Event *event_ptr);
40    virtual bool DoWillResume (lldb::StateType resume_state, bool current_plan);
41
42private:
43
44    bool IsEquivalentContext(const SymbolContext &context);
45
46    bool m_first_resume;
47
48    DISALLOW_COPY_AND_ASSIGN (ThreadPlanStepOverRange);
49
50};
51
52} // namespace lldb_private
53
54#endif  // liblldb_ThreadPlanStepOverRange_h_
55