//===-- POSIXStopInfo.h -----------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef liblldb_POSIXStopInfo_H_ #define liblldb_POSIXStopInfo_H_ // C Includes // C++ Includes // Other libraries and framework includes // Project includes #include "lldb/Target/StopInfo.h" #include "POSIXThread.h" #include "ProcessMessage.h" //===----------------------------------------------------------------------===// /// @class POSIXStopInfo /// @brief Simple base class for all POSIX-specific StopInfo objects. /// class POSIXStopInfo : public lldb_private::StopInfo { public: POSIXStopInfo(lldb_private::Thread &thread, uint32_t status) : StopInfo(thread, status) { } }; //===----------------------------------------------------------------------===// /// @class POSIXLimboStopInfo /// @brief Represents the stop state of a process ready to exit. /// class POSIXLimboStopInfo : public POSIXStopInfo { public: POSIXLimboStopInfo(POSIXThread &thread) : POSIXStopInfo(thread, 0) { } ~POSIXLimboStopInfo(); lldb::StopReason GetStopReason() const; const char * GetDescription(); bool ShouldStop(lldb_private::Event *event_ptr); bool ShouldNotify(lldb_private::Event *event_ptr); }; //===----------------------------------------------------------------------===// /// @class POSIXCrashStopInfo /// @brief Represents the stop state of process that is ready to crash. /// class POSIXCrashStopInfo : public POSIXStopInfo { public: POSIXCrashStopInfo(POSIXThread &thread, uint32_t status, ProcessMessage::CrashReason reason, lldb::addr_t fault_addr) : POSIXStopInfo(thread, status), m_crash_reason(reason), m_fault_addr(fault_addr) { } ~POSIXCrashStopInfo(); lldb::StopReason GetStopReason() const; const char * GetDescription(); private: ProcessMessage::CrashReason m_crash_reason; lldb::addr_t m_fault_addr; }; //===----------------------------------------------------------------------===// /// @class POSIXNewThreadStopInfo /// @brief Represents the stop state of process when a new thread is spawned. /// class POSIXNewThreadStopInfo : public POSIXStopInfo { public: POSIXNewThreadStopInfo (POSIXThread &thread) : POSIXStopInfo (thread, 0) { } ~POSIXNewThreadStopInfo(); lldb::StopReason GetStopReason() const; const char * GetDescription(); bool ShouldStop(lldb_private::Event *event_ptr); bool ShouldNotify(lldb_private::Event *event_ptr); }; #endif