pub enum HappensBeforeError {
Show 22 variants
UnsupportedVersion(u32),
AmbiguousPosition {
event: String,
found: Vec<String>,
},
UnknownSyscall {
event: String,
name: String,
},
NthZero {
event: String,
},
FdWithoutSyscall {
event: String,
},
FdNotFirstArgument {
event: String,
syscall: String,
},
BadRip {
event: String,
text: String,
},
UnknownEvent {
which: String,
name: String,
},
UnknownThread {
event: String,
thread: String,
},
Cycle(Vec<String>),
NewFieldInVersion1 {
event: Option<String>,
field: String,
},
UnknownField {
place: String,
field: String,
},
FutexOpWithoutFutex {
event: String,
},
FutexOpOutOfRange {
event: String,
value: i64,
},
FromUnknownEvent {
event: String,
base: String,
},
FromOnNonOccurrence {
event: String,
},
FromOtherThread {
event: String,
base: String,
},
FromUnenforcedPosition {
event: String,
base: String,
},
FromRelativeBase {
event: String,
base: String,
},
FromCycle(Vec<String>),
PosthookOnNoReturnSyscall {
event: String,
syscall: String,
},
DslSyntax {
line: usize,
message: String,
},
}Expand description
An error produced while parsing or validating a happens-before specification.
Variants§
UnsupportedVersion(u32)
The schema version is not understood by this build.
AmbiguousPosition
An event named more than one position selector, or none.
UnknownSyscall
A syscall name could not be parsed.
NthZero
An occurrence-counted event (syscall, rip, mark or a code
location) set nth to 0; occurrences are 1-based.
FdWithoutSyscall
An event set fd without syscall.
FdNotFirstArgument
An event set fd on a syscall whose first argument is not a file
descriptor (syscall_takes_fd_first).
BadRip
A RIP string could not be parsed as an address.
UnknownEvent
An edge referenced an event that does not exist.
UnknownThread
An event referenced a thread label that is not in the threads table and
is not a raw integer id.
Cycle(Vec<String>)
The edge graph contains a cycle (listed in discovery order).
NewFieldInVersion1
A version-1 spec used a field that version 2 added.
Fields
UnknownField
A version-2 spec carried a field this build does not know.
FutexOpWithoutFutex
An event set futex_op on a syscall other than futex, or without
syscall.
FutexOpOutOfRange
An event’s futex_op does not fit the kernel’s int.
FromUnknownEvent
An event’s from names an event that does not exist.
FromOnNonOccurrence
An event that is not a prehook syscall-occurrence anchor set from.
FromOtherThread
A relative event’s base cannot be shown to be on the same thread: it names another dettid or spawn ordinal, or a dettid where the relative event names a spawn ordinal (or the reverse).
FromUnenforcedPosition
A relative event’s base is neither a count anchor nor an enforced syscall-occurrence anchor, so it can never be reached.
FromRelativeBase
A relative event’s base is itself relative; chains are not supported.
FromCycle(Vec<String>)
The relative bases and the hard edges together form a cycle, so some event on it could only be reached after itself.
PosthookOnNoReturnSyscall
A posthook anchor names a syscall that does not return to its caller
when it succeeds (syscall_never_returns_on_success).
DslSyntax
A DSL line could not be parsed.
Trait Implementations§
Source§impl Clone for HappensBeforeError
impl Clone for HappensBeforeError
Source§fn clone(&self) -> HappensBeforeError
fn clone(&self) -> HappensBeforeError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for HappensBeforeError
impl Debug for HappensBeforeError
Source§impl Display for HappensBeforeError
impl Display for HappensBeforeError
impl Eq for HappensBeforeError
Source§impl Error for HappensBeforeError
impl Error for HappensBeforeError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl PartialEq for HappensBeforeError
impl PartialEq for HappensBeforeError
impl StructuralPartialEq for HappensBeforeError
Auto Trait Implementations§
impl Freeze for HappensBeforeError
impl RefUnwindSafe for HappensBeforeError
impl Send for HappensBeforeError
impl Sync for HappensBeforeError
impl Unpin for HappensBeforeError
impl UnsafeUnpin for HappensBeforeError
impl UnwindSafe for HappensBeforeError
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> Conv for T
impl<T> Conv for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§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>
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.