1*af245d11STodd Fiala //===-- NativeThreadLinux.h ----------------------------------- -*- C++ -*-===// 2*af245d11STodd Fiala // 3*af245d11STodd Fiala // The LLVM Compiler Infrastructure 4*af245d11STodd Fiala // 5*af245d11STodd Fiala // This file is distributed under the University of Illinois Open Source 6*af245d11STodd Fiala // License. See LICENSE.TXT for details. 7*af245d11STodd Fiala // 8*af245d11STodd Fiala //===----------------------------------------------------------------------===// 9*af245d11STodd Fiala 10*af245d11STodd Fiala #ifndef liblldb_NativeThreadLinux_H_ 11*af245d11STodd Fiala #define liblldb_NativeThreadLinux_H_ 12*af245d11STodd Fiala 13*af245d11STodd Fiala #include "lldb/lldb-private-forward.h" 14*af245d11STodd Fiala #include "../../../Host/common/NativeThreadProtocol.h" 15*af245d11STodd Fiala 16*af245d11STodd Fiala namespace lldb_private 17*af245d11STodd Fiala { 18*af245d11STodd Fiala class NativeProcessLinux; 19*af245d11STodd Fiala 20*af245d11STodd Fiala class NativeThreadLinux : public NativeThreadProtocol 21*af245d11STodd Fiala { 22*af245d11STodd Fiala friend class NativeProcessLinux; 23*af245d11STodd Fiala 24*af245d11STodd Fiala public: 25*af245d11STodd Fiala NativeThreadLinux (NativeProcessLinux *process, lldb::tid_t tid); 26*af245d11STodd Fiala 27*af245d11STodd Fiala // --------------------------------------------------------------------- 28*af245d11STodd Fiala // NativeThreadProtocol Interface 29*af245d11STodd Fiala // --------------------------------------------------------------------- 30*af245d11STodd Fiala const char * 31*af245d11STodd Fiala GetName() override; 32*af245d11STodd Fiala 33*af245d11STodd Fiala lldb::StateType 34*af245d11STodd Fiala GetState () override; 35*af245d11STodd Fiala 36*af245d11STodd Fiala bool 37*af245d11STodd Fiala GetStopReason (ThreadStopInfo &stop_info) override; 38*af245d11STodd Fiala 39*af245d11STodd Fiala NativeRegisterContextSP 40*af245d11STodd Fiala GetRegisterContext () override; 41*af245d11STodd Fiala 42*af245d11STodd Fiala Error 43*af245d11STodd Fiala SetWatchpoint (lldb::addr_t addr, size_t size, uint32_t watch_flags, bool hardware) override; 44*af245d11STodd Fiala 45*af245d11STodd Fiala Error 46*af245d11STodd Fiala RemoveWatchpoint (lldb::addr_t addr) override; 47*af245d11STodd Fiala 48*af245d11STodd Fiala uint32_t 49*af245d11STodd Fiala TranslateStopInfoToGdbSignal (const ThreadStopInfo &stop_info) const override; 50*af245d11STodd Fiala 51*af245d11STodd Fiala private: 52*af245d11STodd Fiala // --------------------------------------------------------------------- 53*af245d11STodd Fiala // Interface for friend classes 54*af245d11STodd Fiala // --------------------------------------------------------------------- 55*af245d11STodd Fiala void 56*af245d11STodd Fiala SetLaunching (); 57*af245d11STodd Fiala 58*af245d11STodd Fiala void 59*af245d11STodd Fiala SetRunning (); 60*af245d11STodd Fiala 61*af245d11STodd Fiala void 62*af245d11STodd Fiala SetStepping (); 63*af245d11STodd Fiala 64*af245d11STodd Fiala void 65*af245d11STodd Fiala SetStoppedBySignal (uint32_t signo); 66*af245d11STodd Fiala 67*af245d11STodd Fiala void 68*af245d11STodd Fiala SetStoppedByBreakpoint (); 69*af245d11STodd Fiala 70*af245d11STodd Fiala bool 71*af245d11STodd Fiala IsStoppedAtBreakpoint (); 72*af245d11STodd Fiala 73*af245d11STodd Fiala void 74*af245d11STodd Fiala SetCrashedWithException (uint64_t exception_type, lldb::addr_t exception_addr); 75*af245d11STodd Fiala 76*af245d11STodd Fiala void 77*af245d11STodd Fiala SetSuspended (); 78*af245d11STodd Fiala 79*af245d11STodd Fiala void 80*af245d11STodd Fiala SetExited (); 81*af245d11STodd Fiala 82*af245d11STodd Fiala // --------------------------------------------------------------------- 83*af245d11STodd Fiala // Private interface 84*af245d11STodd Fiala // --------------------------------------------------------------------- 85*af245d11STodd Fiala void 86*af245d11STodd Fiala MaybeLogStateChange (lldb::StateType new_state); 87*af245d11STodd Fiala 88*af245d11STodd Fiala // --------------------------------------------------------------------- 89*af245d11STodd Fiala // Member Variables 90*af245d11STodd Fiala // --------------------------------------------------------------------- 91*af245d11STodd Fiala lldb::StateType m_state; 92*af245d11STodd Fiala ThreadStopInfo m_stop_info; 93*af245d11STodd Fiala NativeRegisterContextSP m_reg_context_sp; 94*af245d11STodd Fiala }; 95*af245d11STodd Fiala } 96*af245d11STodd Fiala 97*af245d11STodd Fiala #endif // #ifndef liblldb_NativeThreadLinux_H_ 98