#[non_exhaustive]pub struct FailureDumpStackTrace {
pub n_buckets: u32,
pub entries: Vec<FailureDumpStackTraceEntry>,
pub truncated: bool,
pub buckets_unreadable: u32,
}Expand description
Per-bucket summary of populated stack traces in a STACK_TRACE map.
Each entry is one populated bucket whose pointer was non-null at
the freeze instant. nr is the number of trace samples (PCs) in
the bucket; pcs carries the actual u64 PC values when readable
(build-id stacks render the raw bytes hex since the per-entry
shape is struct bpf_stack_build_id, not a u64). The dump caps
per-bucket entries at MAX_STACK_TRACE_PCS to bound memory.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.n_buckets: u32bpf_stack_map.n_buckets — the rounded-up power-of-two slot
count. Iteration upper bound; differs from max_entries which
the kernel rounds.
entries: Vec<FailureDumpStackTraceEntry>One entry per non-null bucket pointer. Sorted by bucket id.
truncated: boolTrue when any populated bucket was truncated at
MAX_STACK_TRACE_PCS PCs.
buckets_unreadable: u32Count of buckets whose pointer slot or bucket struct could
not be translated to a guest physical address at capture
time (an unmapped page in the bucket array or a dangling
bucket KVA). These buckets are absent from entries
entirely. 0 when every non-null bucket was readable.
Without this count entries.len() undercounts the live
buckets and the gap reads as “fewer stacks present” rather
than “stacks present but unreadable”.
Trait Implementations§
Source§impl Clone for FailureDumpStackTrace
impl Clone for FailureDumpStackTrace
Source§fn clone(&self) -> FailureDumpStackTrace
fn clone(&self) -> FailureDumpStackTrace
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FailureDumpStackTrace
impl Debug for FailureDumpStackTrace
Source§impl Default for FailureDumpStackTrace
impl Default for FailureDumpStackTrace
Source§fn default() -> FailureDumpStackTrace
fn default() -> FailureDumpStackTrace
Source§impl<'de> Deserialize<'de> for FailureDumpStackTrace
impl<'de> Deserialize<'de> for FailureDumpStackTrace
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for FailureDumpStackTrace
impl RefUnwindSafe for FailureDumpStackTrace
impl Send for FailureDumpStackTrace
impl Sync for FailureDumpStackTrace
impl Unpin for FailureDumpStackTrace
impl UnwindSafe for FailureDumpStackTrace
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more