pub struct SFrameFDE {
pub func_start_offset: i64,
pub func_size: u32,
pub func_start_fre_off: u32,
pub func_num_fres: u16,
pub func_info: SFrameFDEInfo,
pub func_info2: SFrameFDEInfo2,
pub func_rep_size: u8,
/* private fields */
}Expand description
Fields§
§func_start_offset: i64Signed 64-bit integral field specifying the offset to the start address of the described function. If the flag SFRAME_F_FDE_FUNC_START_PCREL, See SFrame Flags, in the SFrame header is set, the value encoded in the sfdi_func_start_offset field is the offset in bytes to the function’s start address from the sfdi_func_start_offset field itself. Otherwise, it is the offset in bytes from the start of the SFrame section.
func_size: u32Unsigned 32-bit integral field specifying the size of the function in bytes.
func_start_fre_off: u32Unsigned 32-bit integral field specifying the offset to the start of the function’s stack trace data (SFrame FREs). This offset is relative to the beginning of the SFrame FRE sub-section.
func_num_fres: u16Unsigned 16-bit integral field specifying the total number of SFrame FREs used for the function.
func_info: SFrameFDEInfoUnsigned 8-bit integral field specifying the SFrame FDE info word. See The SFrame FDE Info Word.
func_info2: SFrameFDEInfo2Additional unsigned 8-bit integral field specifying the SFrame FDE info byte.
func_rep_size: u8Unsigned 8-bit integral field specifying the size of the repetitive code block for which an SFrame FDE of type SFRAME_FDE_PCTYPE_MASK is used. For example, in AMD64, the size of a pltN entry is 16 bytes.
Implementations§
Source§impl SFrameFDE
impl SFrameFDE
Sourcepub fn get_fde_type(&self) -> SFrameResult<SFrameFDEType>
pub fn get_fde_type(&self) -> SFrameResult<SFrameFDEType>
Get the FDE type (Default or Flex)
Sourcepub fn get_pc(&self, section: &SFrameSection<'_>) -> u64
pub fn get_pc(&self, section: &SFrameSection<'_>) -> u64
Compute pc of the function
Sourcepub fn iter_fre<'a>(
&'a self,
section: &'a SFrameSection<'a>,
) -> SFrameFREIterator<'a>
pub fn iter_fre<'a>( &'a self, section: &'a SFrameSection<'a>, ) -> SFrameFREIterator<'a>
Iterate FRE entries
Sourcepub fn find_fre(
&self,
section: &SFrameSection<'_>,
pc: u64,
) -> SFrameResult<Option<SFrameFRE>>
pub fn find_fre( &self, section: &SFrameSection<'_>, pc: u64, ) -> SFrameResult<Option<SFrameFRE>>
Find FRE entry by pc