1 //===-- POSIXStopInfo.h -----------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef liblldb_POSIXStopInfo_H_
11 #define liblldb_POSIXStopInfo_H_
15 // Other libraries and framework includes
17 #include "lldb/Target/StopInfo.h"
19 #include "CrashReason.h"
20 #include "FreeBSDThread.h"
24 //===----------------------------------------------------------------------===//
25 /// @class POSIXStopInfo
26 /// @brief Simple base class for all POSIX-specific StopInfo objects.
29 : public lldb_private::StopInfo
32 POSIXStopInfo(lldb_private::Thread &thread, uint32_t status)
33 : StopInfo(thread, status)
37 //===----------------------------------------------------------------------===//
38 /// @class POSIXLimboStopInfo
39 /// @brief Represents the stop state of a process ready to exit.
41 class POSIXLimboStopInfo
42 : public POSIXStopInfo
45 POSIXLimboStopInfo(FreeBSDThread &thread)
46 : POSIXStopInfo(thread, 0)
49 ~POSIXLimboStopInfo();
52 GetStopReason() const;
58 ShouldStop(lldb_private::Event *event_ptr);
61 ShouldNotify(lldb_private::Event *event_ptr);
65 //===----------------------------------------------------------------------===//
66 /// @class POSIXCrashStopInfo
67 /// @brief Represents the stop state of process that is ready to crash.
69 class POSIXCrashStopInfo
70 : public POSIXStopInfo
73 POSIXCrashStopInfo(FreeBSDThread &thread, uint32_t status,
75 lldb::addr_t fault_addr);
76 ~POSIXCrashStopInfo();
79 GetStopReason() const;
82 //===----------------------------------------------------------------------===//
83 /// @class POSIXNewThreadStopInfo
84 /// @brief Represents the stop state of process when a new thread is spawned.
87 class POSIXNewThreadStopInfo
88 : public POSIXStopInfo
91 POSIXNewThreadStopInfo (FreeBSDThread &thread)
92 : POSIXStopInfo (thread, 0)
95 ~POSIXNewThreadStopInfo();
98 GetStopReason() const;
104 ShouldStop(lldb_private::Event *event_ptr);
107 ShouldNotify(lldb_private::Event *event_ptr);