ThreadPlanStepInRange.h revision 8f5fd6b999b0c9b7398870ccc3ed438d7a6a0830
1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com//===-- ThreadPlanStepInRange.h ---------------------------------*- C++ -*-===//
28a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com//
3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com//                     The LLVM Compiler Infrastructure
48a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com//
5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com// This file is distributed under the University of Illinois Open Source
6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com// License. See LICENSE.TXT for details.
78a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com//
88a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com//===----------------------------------------------------------------------===//
9ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com
108a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#ifndef liblldb_ThreadPlanStepInRange_h_
118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#define liblldb_ThreadPlanStepInRange_h_
128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
138a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// C Includes
148a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// C++ Includes
158a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// Other libraries and framework includes
168a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// Project includes
178a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "lldb/Core/AddressRange.h"
188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "lldb/Target/StackID.h"
198a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "lldb/Target/Thread.h"
208a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "lldb/Target/ThreadPlanStepRange.h"
218a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "lldb/Target/ThreadPlanShouldStopHere.h"
228a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
238a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comnamespace lldb_private {
248a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
258a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass ThreadPlanStepInRange :
268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    public ThreadPlanStepRange,
278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    public ThreadPlanShouldStopHere
288a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com{
298a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.compublic:
308a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual
318a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    ~ThreadPlanStepInRange ();
328a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
338a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual void
348a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    GetDescription (Stream *s, lldb::DescriptionLevel level);
358a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
368a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual bool
378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    ShouldStop (Event *event_ptr);
388a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
398a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    static ThreadPlan *
408a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    DefaultShouldStopHereCallback (ThreadPlan *current_plan, Flags &flags, void *baton);
418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    static void
438a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SetDefaultFlagValue (uint32_t new_value);
448a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
458a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprotected:
468a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
478a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    ThreadPlanStepInRange (Thread &thread,
488a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com                           const AddressRange &range,
498a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com                           const SymbolContext &addr_context,
508a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com                           lldb::RunMode stop_others);
518a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
528a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual void
538a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SetFlagsToDefault ();
548a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
558a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprivate:
568a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
578a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    friend ThreadPlan *
588a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    Thread::QueueThreadPlanForStepRange (bool abort_other_plans,
598a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com                                         lldb::StepType type,
608a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com                                         const AddressRange &range,
618a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com                                         const SymbolContext &addr_context,
628a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com                                         lldb::RunMode stop_others,
638a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com                                         bool avoid_code_without_debug_info);
648a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
658a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
668a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    // Need an appropriate marker for the current stack so we can tell step out
678a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    // from step in.
688a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
698a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    static uint32_t s_default_flag_values;
708a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
718a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    DISALLOW_COPY_AND_ASSIGN (ThreadPlanStepInRange);
728a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
738a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com};
748a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
758a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} // namespace lldb_private
768a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
778a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif  // liblldb_ThreadPlanStepInRange_h_
788a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com