[−]Struct symbolic::debuginfo::pdb::pdb::SectionOffset
An offset relative to a PE section.
This offset can be converted to an Rva
to receive the address relative to the entire image.
Note that this offset applies to the actual PE headers. The PDB debug information actually
stores PdbInternalSectionOffsets
.
Fields
offset: u32
The memory offset relative from the start of the section's memory.
section: u16
The index of the section in the PE's section headers list, incremented by 1
. A value of
0
indicates an invalid or missing reference.
Implementations
impl SectionOffset
pub fn to_rva(self, translator: &AddressMap<'_>) -> Option<Rva>
Resolves an actual Relative Virtual Address in the executable's address space.
pub fn to_internal_rva(
self,
translator: &AddressMap<'_>
) -> Option<PdbInternalRva>
self,
translator: &AddressMap<'_>
) -> Option<PdbInternalRva>
Resolves a PDB-internal Relative Virtual Address.
This address is not necessarily compatible with the executable's address space and should therefore not be used for debugging purposes.
pub fn to_internal_offset(
self,
translator: &AddressMap<'_>
) -> Option<PdbInternalSectionOffset>
self,
translator: &AddressMap<'_>
) -> Option<PdbInternalSectionOffset>
Resolves the PDB internal section offset.
impl SectionOffset
pub fn new(section: u16, offset: u32) -> SectionOffset
Creates a new section offset.
pub fn is_valid(self) -> bool
Returns whether this section offset points to a valid section or into the void.
pub fn checked_add(self, offset: u32) -> Option<SectionOffset>
Checked addition of an offset. Returns None
if overflow occurred.
This does not check whether the offset is still valid within the given section. If
the offset is out of bounds, the conversion to Rva
will return None
.
pub fn saturating_add(self, offset: u32) -> SectionOffset
Saturating addition of an offset, clipped at the numeric bounds.
This does not check whether the offset is still valid within the given section. If
the offset is out of bounds, the conversion to Rva
will return None
.
pub fn wrapping_add(self, offset: u32) -> SectionOffset
Wrapping (modular) addition of an offset.
This does not check whether the offset is still valid within the given section. If
the offset is out of bounds, the conversion to Rva
will return None
.
Trait Implementations
impl Add<u32> for SectionOffset
type Output = SectionOffset
The resulting type after applying the +
operator.
pub fn add(self, offset: u32) -> SectionOffset
Adds the given offset to this section offset.
This does not check whether the offset is still valid within the given section. If
the offset is out of bounds, the conversion to Rva
will return None
.
impl AddAssign<u32> for SectionOffset
pub fn add_assign(&mut self, offset: u32)
Adds the given offset to this section offset.
This does not check whether the offset is still valid within the given section. If
the offset is out of bounds, the conversion to Rva
will return None
.
impl Clone for SectionOffset
pub fn clone(&self) -> SectionOffset
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Copy for SectionOffset
impl Debug for SectionOffset
impl Default for SectionOffset
pub fn default() -> SectionOffset
impl Eq for SectionOffset
impl Hash for SectionOffset
pub fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,
__H: Hasher,
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl PartialEq<SectionOffset> for SectionOffset
pub fn eq(&self, other: &SectionOffset) -> bool
pub fn ne(&self, other: &SectionOffset) -> bool
impl PartialOrd<SectionOffset> for SectionOffset
pub fn partial_cmp(&self, other: &SectionOffset) -> Option<Ordering>
Compares offsets if they reside in the same section.
#[must_use]pub fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
impl StructuralEq for SectionOffset
impl StructuralPartialEq for SectionOffset
Auto Trait Implementations
impl RefUnwindSafe for SectionOffset
[src]
impl Send for SectionOffset
[src]
impl Sync for SectionOffset
[src]
impl Unpin for SectionOffset
[src]
impl UnwindSafe for SectionOffset
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,