pub type MultiThreadStopReason<U> = BaseStopReason<Tid, U>;
Expand description
A stop reason for a multi threaded target.
Threads are identified using a Tid
.
Aliased Type§
enum MultiThreadStopReason<U> {
DoneStep,
Exited(u8),
Terminated(Signal),
Signal(Signal),
SignalWithThread {
tid: NonZero<usize>,
signal: Signal,
},
SwBreak(NonZero<usize>),
HwBreak(NonZero<usize>),
Watch {
tid: NonZero<usize>,
kind: WatchKind,
addr: U,
},
ReplayLog {
tid: Option<NonZero<usize>>,
pos: ReplayLogPosition,
},
CatchSyscall {
tid: Option<NonZero<usize>>,
number: U,
position: CatchSyscallPosition,
},
}
Variants§
DoneStep
Completed the single-step request.
Exited(u8)
The process exited with the specified exit status.
Terminated(Signal)
The process terminated with the specified signal number.
Signal(Signal)
The program received a signal.
SignalWithThread
A specific thread received a signal.
SwBreak(NonZero<usize>)
A thread hit a software breakpoint (e.g. due to a trap instruction).
Requires: SwBreakpoint
.
NOTE: This does not necessarily have to be a breakpoint configured by the client/user of the current GDB session.
HwBreak(NonZero<usize>)
A thread hit a hardware breakpoint.
Requires: HwBreakpoint
.
Watch
A thread hit a watchpoint.
Requires: HwWatchpoint
.
Fields
addr: U
Address of watched memory
ReplayLog
The program has reached the end of the logged replay events.
Requires: ReverseCont
or ReverseStep
.
This is used for GDB’s reverse execution. When playing back a recording, you may hit the end of the buffer of recorded events, and as such no further execution can be done. This stop reason tells GDB that this has occurred.
Fields
pos: ReplayLogPosition
The point reached in a replay log (i.e: beginning vs. end).
CatchSyscall
The program has reached a syscall entry or return location.
Requires: CatchSyscalls
.