pub enum InstructionAddrAdjustment {
Auto,
AllButFirst,
All,
None,
Unknown(String),
}
Expand description
Controls the mechanism by which the instruction_addr
of a Stacktrace
Frame
is adjusted.
The adjustment tries to transform return addresses to call addresses for symbolication. Typically, this adjustment needs to be done for all frames but the first, as the first frame is usually taken directly from the cpu context of a hardware exception or a suspended thread and the stack trace is created from that.
When the stack walking implementation truncates frames from the top, "all"
frames should be
adjusted. In case the stack walking implementation already does the adjustment when producing
stack frames, "none"
should be used here.
Variants§
Auto
The default. Applies a heuristic based on other event / exception attributes.
AllButFirst
All but the first frame needs to be adjusted. The first frame’s address is not a return address, but points directly to the faulty instruction.
All
All frames should be adjusted, for example because the stack walking implementation truncated frames from the top of the stack, and all remaining frames’ addresses are return addresses.
None
The stack walking implementation already provides correct addresses and no adjustment should be performed when symbolicating.
Unknown(String)
Any other unknown adjustment strategy.
This exists to ensure forward compatibility.
Implementations§
Trait Implementations§
source§impl Clone for InstructionAddrAdjustment
impl Clone for InstructionAddrAdjustment
source§fn clone(&self) -> InstructionAddrAdjustment
fn clone(&self) -> InstructionAddrAdjustment
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for InstructionAddrAdjustment
impl Debug for InstructionAddrAdjustment
source§impl Default for InstructionAddrAdjustment
impl Default for InstructionAddrAdjustment
source§impl<'de> Deserialize<'de> for InstructionAddrAdjustment
impl<'de> Deserialize<'de> for InstructionAddrAdjustment
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>,
source§impl Display for InstructionAddrAdjustment
impl Display for InstructionAddrAdjustment
source§impl Empty for InstructionAddrAdjustment
impl Empty for InstructionAddrAdjustment
source§impl FromStr for InstructionAddrAdjustment
impl FromStr for InstructionAddrAdjustment
source§impl FromValue for InstructionAddrAdjustment
impl FromValue for InstructionAddrAdjustment
source§fn from_value(value: Annotated<Value>) -> Annotated<Self>
fn from_value(value: Annotated<Value>) -> Annotated<Self>
source§impl IntoValue for InstructionAddrAdjustment
impl IntoValue for InstructionAddrAdjustment
source§fn into_value(self) -> Valuewhere
Self: Sized,
fn into_value(self) -> Valuewhere
Self: Sized,
source§fn serialize_payload<S>(
&self,
s: S,
_behavior: SkipSerialization,
) -> Result<S::Ok, S::Error>where
Self: Sized,
S: Serializer,
fn serialize_payload<S>(
&self,
s: S,
_behavior: SkipSerialization,
) -> Result<S::Ok, S::Error>where
Self: Sized,
S: Serializer,
§fn extract_child_meta(&self) -> BTreeMap<String, MetaTree>where
Self: Sized,
fn extract_child_meta(&self) -> BTreeMap<String, MetaTree>where
Self: Sized,
§fn extract_meta_tree(value: &Annotated<Self>) -> MetaTreewhere
Self: Sized,
fn extract_meta_tree(value: &Annotated<Self>) -> MetaTreewhere
Self: Sized,
source§impl ProcessValue for InstructionAddrAdjustment
impl ProcessValue for InstructionAddrAdjustment
source§fn value_type(&self) -> EnumSet<ValueType>
fn value_type(&self) -> EnumSet<ValueType>
source§fn process_value<P>(
&mut self,
__meta: &mut Meta,
__processor: &mut P,
__state: &ProcessingState<'_>,
) -> ProcessingResultwhere
P: Processor,
fn process_value<P>(
&mut self,
__meta: &mut Meta,
__processor: &mut P,
__state: &ProcessingState<'_>,
) -> ProcessingResultwhere
P: Processor,
source§fn process_child_values<P>(
&mut self,
__processor: &mut P,
__state: &ProcessingState<'_>,
) -> ProcessingResultwhere
P: Processor,
fn process_child_values<P>(
&mut self,
__processor: &mut P,
__state: &ProcessingState<'_>,
) -> ProcessingResultwhere
P: Processor,
impl Eq for InstructionAddrAdjustment
impl StructuralPartialEq for InstructionAddrAdjustment
Auto Trait Implementations§
impl Freeze for InstructionAddrAdjustment
impl RefUnwindSafe for InstructionAddrAdjustment
impl Send for InstructionAddrAdjustment
impl Sync for InstructionAddrAdjustment
impl Unpin for InstructionAddrAdjustment
impl UnwindSafe for InstructionAddrAdjustment
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,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)