AsmGrader 0.0.0
Loading...
Searching...
No Matches
asmgrader::TracedWaitid Struct Reference

#include <tracer_types.hpp>

Static Public Member Functions

static Expected< TracedWaitidwaitid (idtype_t idtype, id_t id, int options=WSTOPPED|WEXITED)
 
template<ChronoDuration Duration1, ChronoDuration Duration2 = std::chrono::microseconds>
static Result< TracedWaitidwait_with_timeout (pid_t pid, Duration1 timeout, Duration2 poll_period=std::chrono::microseconds{1})
 
static constexpr TracedWaitid parse (const siginfo_t &siginfo)
 

Public Attributes

int type {}
 type is si_code in waitid(2). One of: CLD_EXITED, CLD_KILLED, CLD_DUMPED, CLD_STOPPED, CLD_TRAPPED, CLD_CONTINUED
 
std::optional< int > exit_code
 Has value if and only if type == CLD_EXITED.
 
std::optional< linux::Signalsignal_num
 Has value if type is not CLD_EXITED.
 
std::optional< PtraceEventptrace_event
 A PTRACE_EVENT_* value if an event was recieved.
 
bool is_syscall_trap = false
 Whether a system call trape was delivered via ptrace.
 

Member Function Documentation

◆ parse()

static constexpr TracedWaitid asmgrader::TracedWaitid::parse ( const siginfo_t & siginfo)
inlinestaticconstexpr

◆ wait_with_timeout()

template<ChronoDuration Duration1, ChronoDuration Duration2 = std::chrono::microseconds>
static Result< TracedWaitid > asmgrader::TracedWaitid::wait_with_timeout ( pid_t pid,
Duration1 timeout,
Duration2 poll_period = std::chrono::microseconds{1} )
inlinestatic

◆ waitid()

static Expected< TracedWaitid > asmgrader::TracedWaitid::waitid ( idtype_t idtype,
id_t id,
int options = WSTOPPED | WEXITED )
inlinestatic

Member Data Documentation

◆ exit_code

std::optional<int> asmgrader::TracedWaitid::exit_code

Has value if and only if type == CLD_EXITED.

◆ is_syscall_trap

bool asmgrader::TracedWaitid::is_syscall_trap = false

Whether a system call trape was delivered via ptrace.

◆ ptrace_event

std::optional<PtraceEvent> asmgrader::TracedWaitid::ptrace_event

A PTRACE_EVENT_* value if an event was recieved.

◆ signal_num

std::optional<linux::Signal> asmgrader::TracedWaitid::signal_num

Has value if type is not CLD_EXITED.

◆ type

int asmgrader::TracedWaitid::type {}

type is si_code in waitid(2). One of: CLD_EXITED, CLD_KILLED, CLD_DUMPED, CLD_STOPPED, CLD_TRAPPED, CLD_CONTINUED


The documentation for this struct was generated from the following file: