LLDB  mainline
ThreadPlanStepThrough.h
Go to the documentation of this file.
1 //===-- ThreadPlanStepThrough.h ---------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLDB_TARGET_THREADPLANSTEPTHROUGH_H
10 #define LLDB_TARGET_THREADPLANSTEPTHROUGH_H
11 
12 #include "lldb/Target/Thread.h"
13 #include "lldb/Target/ThreadPlan.h"
14 
15 namespace lldb_private {
16 
18 public:
19  ~ThreadPlanStepThrough() override;
20 
21  void GetDescription(Stream *s, lldb::DescriptionLevel level) override;
22  bool ValidatePlan(Stream *error) override;
23  bool ShouldStop(Event *event_ptr) override;
24  bool StopOthers() override;
26  bool WillStop() override;
27  bool MischiefManaged() override;
28  void DidPush() override;
29 
30 protected:
31  bool DoPlanExplainsStop(Event *event_ptr) override;
32  bool DoWillResume(lldb::StateType resume_state, bool current_plan) override;
33 
34  ThreadPlanStepThrough(Thread &thread, StackID &return_stack_id,
35  bool stop_others);
36 
38 
40 
41 private:
42  friend lldb::ThreadPlanSP
44  bool abort_other_plans,
45  bool stop_others, Status &status);
46 
48 
49  lldb::ThreadPlanSP m_sub_plan_sp;
55 
57  const ThreadPlanStepThrough &
58  operator=(const ThreadPlanStepThrough &) = delete;
59 };
60 
61 } // namespace lldb_private
62 
63 #endif // LLDB_TARGET_THREADPLANSTEPTHROUGH_H
lldb_private::ThreadPlanStepThrough::DidPush
void DidPush() override
Definition: ThreadPlanStepThrough.cpp:75
lldb_private::ThreadPlanStepThrough::m_return_stack_id
StackID m_return_stack_id
Definition: ThreadPlanStepThrough.h:53
lldb_private::Event
Definition: Event.h:182
lldb_private::ThreadPlanStepThrough::ThreadPlanStepThrough
ThreadPlanStepThrough(Thread &thread, StackID &return_stack_id, bool stop_others)
Definition: ThreadPlanStepThrough.cpp:27
lldb_private::ThreadPlanStepThrough::LookForPlanToStepThroughFromCurrentPC
void LookForPlanToStepThroughFromCurrentPC()
Definition: ThreadPlanStepThrough.cpp:80
lldb_private::ThreadPlanStepThrough::m_sub_plan_sp
lldb::ThreadPlanSP m_sub_plan_sp
Definition: ThreadPlanStepThrough.h:49
lldb_private::ThreadPlanStepThrough
Definition: ThreadPlanStepThrough.h:17
lldb_private::ThreadPlanStepThrough::ShouldStop
bool ShouldStop(Event *event_ptr) override
Definition: ThreadPlanStepThrough.cpp:161
lldb_private::ThreadPlanStepThrough::DoWillResume
bool DoWillResume(lldb::StateType resume_state, bool current_plan) override
Definition: ThreadPlanStepThrough.cpp:215
lldb_private::ThreadPlanStepThrough::m_backstop_bkpt_id
lldb::break_id_t m_backstop_bkpt_id
Definition: ThreadPlanStepThrough.h:51
lldb_private::ThreadPlanStepThrough::HitOurBackstopBreakpoint
bool HitOurBackstopBreakpoint()
Definition: ThreadPlanStepThrough.cpp:244
lldb_private::Stream
Definition: Stream.h:28
lldb::addr_t
uint64_t addr_t
Definition: lldb-types.h:83
error
static llvm::raw_ostream & error(Stream &strm)
Definition: CommandReturnObject.cpp:17
lldb_private::ThreadPlan
Definition: ThreadPlan.h:287
lldb_private::ThreadPlanStepThrough::ClearBackstopBreakpoint
void ClearBackstopBreakpoint()
Definition: ThreadPlanStepThrough.cpp:222
lldb_private::Thread
Definition: Thread.h:61
lldb_private::ThreadPlanStepThrough::m_start_address
lldb::addr_t m_start_address
Definition: ThreadPlanStepThrough.h:50
lldb_private::ThreadPlanStepThrough::GetDescription
void GetDescription(Stream *s, lldb::DescriptionLevel level) override
Print a description of this thread to the stream s.
Definition: ThreadPlanStepThrough.cpp:114
lldb::break_id_t
int32_t break_id_t
Definition: lldb-types.h:88
lldb_private::Thread::QueueThreadPlanForStepThrough
virtual lldb::ThreadPlanSP QueueThreadPlanForStepThrough(StackID &return_stack_id, bool abort_other_plans, bool stop_other_threads, Status &status)
Gets the plan used to step through the code that steps from a function call site at the current PC in...
Definition: Thread.cpp:1357
lldb_private::ThreadPlanStepThrough::operator=
const ThreadPlanStepThrough & operator=(const ThreadPlanStepThrough &)=delete
Thread.h
lldb_private::ThreadPlanStepThrough::m_backstop_addr
lldb::addr_t m_backstop_addr
Definition: ThreadPlanStepThrough.h:52
lldb_private::ThreadPlanStepThrough::m_stop_others
bool m_stop_others
Definition: ThreadPlanStepThrough.h:54
ThreadPlan.h
lldb_private::Status
Definition: Status.h:44
lldb_private
A class that represents a running process on the host machine.
Definition: SBCommandInterpreterRunOptions.h:16
lldb_private::ThreadPlanStepThrough::~ThreadPlanStepThrough
~ThreadPlanStepThrough() override
Definition: ThreadPlanStepThrough.cpp:73
lldb_private::ThreadPlanStepThrough::ValidatePlan
bool ValidatePlan(Stream *error) override
Returns whether this plan could be successfully created.
Definition: ThreadPlanStepThrough.cpp:130
lldb_private::StackID
Definition: StackID.h:17
lldb_private::ThreadPlanStepThrough::DoPlanExplainsStop
bool DoPlanExplainsStop(Event *event_ptr) override
Definition: ThreadPlanStepThrough.cpp:153
lldb::StateType
StateType
Process and Thread States.
Definition: lldb-enumerations.h:74
lldb_private::ThreadPlanStepThrough::WillStop
bool WillStop() override
Definition: ThreadPlanStepThrough.cpp:220
lldb_private::ThreadPlanStepThrough::GetPlanRunState
lldb::StateType GetPlanRunState() override
Definition: ThreadPlanStepThrough.cpp:213
lldb_private::ThreadPlanStepThrough::MischiefManaged
bool MischiefManaged() override
Definition: ThreadPlanStepThrough.cpp:230
lldb::DescriptionLevel
DescriptionLevel
Description levels for "void GetDescription(Stream *, DescriptionLevel)" calls.
Definition: lldb-enumerations.h:208
lldb_private::ThreadPlanStepThrough::StopOthers
bool StopOthers() override
Definition: ThreadPlanStepThrough.cpp:211