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