[][src]Struct kernel::process::ProcessDebug

struct ProcessDebug {
    app_heap_start_pointer: Option<*const u8>,
    app_stack_start_pointer: Option<*const u8>,
    min_stack_pointer: *const u8,
    syscall_count: usize,
    last_syscall: Option<Syscall>,
    dropped_callback_count: usize,
    restart_count: usize,
    timeslice_expiration_count: usize,

State for helping with debugging apps.

These pointers and counters are not strictly required for kernel operation, but provide helpful information when an app crashes.


app_heap_start_pointer: Option<*const u8>

Where the process has started its heap in RAM.

app_stack_start_pointer: Option<*const u8>

Where the start of the stack is for the process. If the kernel does the PIC setup for this app then we know this, otherwise we need the app to tell us where it put its stack.

min_stack_pointer: *const u8

How low have we ever seen the stack pointer.

syscall_count: usize

How many syscalls have occurred since the process started.

last_syscall: Option<Syscall>

What was the most recent syscall.

dropped_callback_count: usize

How many callbacks were dropped because the queue was insufficiently long.

restart_count: usize

How many times this process has entered into a fault condition and the kernel has restarted it.

timeslice_expiration_count: usize

How many times this process has been paused because it exceeded its timeslice.

Auto Trait Implementations

impl Unpin for ProcessDebug

impl !Send for ProcessDebug

impl !Sync for ProcessDebug

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> Into<U> for T where
    U: From<T>, 

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized

impl<T> BorrowMut<T> for T where
    T: ?Sized

impl<T> Any for T where
    T: 'static + ?Sized