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 (const: unstable) · 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§fn default() -> InstructionAddrAdjustment
fn default() -> 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 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,
Source§impl PartialEq for InstructionAddrAdjustment
impl PartialEq for InstructionAddrAdjustment
Source§fn eq(&self, other: &InstructionAddrAdjustment) -> bool
fn eq(&self, other: &InstructionAddrAdjustment) -> bool
self and other values to be equal, and is used by ==.