SymbolData

Enum SymbolData 

Source
#[non_exhaustive]
pub enum SymbolData<'t> {
Show 52 variants ScopeEnd, ObjName(ObjNameSymbol<'t>), RegisterVariable(RegisterVariableSymbol<'t>), Constant(ConstantSymbol<'t>), UserDefinedType(UserDefinedTypeSymbol<'t>), MultiRegisterVariable(MultiRegisterVariableSymbol<'t>), Data(DataSymbol<'t>), Public(PublicSymbol<'t>), Procedure(ProcedureSymbol<'t>), ManagedProcedure(ManagedProcedureSymbol<'t>), ThreadStorage(ThreadStorageSymbol<'t>), CompileFlags(CompileFlagsSymbol<'t>), UsingNamespace(UsingNamespaceSymbol<'t>), ProcedureReference(ProcedureReferenceSymbol<'t>), DataReference(DataReferenceSymbol<'t>), Annotation(AnnotationSymbol<'t>), AnnotationReference(AnnotationReferenceSymbol<'t>), TokenReference(TokenReferenceSymbol<'t>), Trampoline(TrampolineSymbol), Export(ExportSymbol<'t>), Local(LocalSymbol<'t>), ManagedSlot(ManagedSlotSymbol<'t>), BuildInfo(BuildInfoSymbol), InlineSite(InlineSiteSymbol<'t>), InlineSiteEnd, ProcedureEnd, Label(LabelSymbol<'t>), Block(BlockSymbol<'t>), RegisterRelative(RegisterRelativeSymbol<'t>), Thunk(ThunkSymbol<'t>), SeparatedCode(SeparatedCodeSymbol), OEM(OemSymbol<'t>), EnvBlock(EnvBlockSymbol<'t>), Section(SectionSymbol<'t>), CoffGroup(CoffGroupSymbol<'t>), DefRange(DefRangeSymbol), DefRangeSubField(DefRangeSubFieldSymbol), DefRangeRegister(DefRangeRegisterSymbol), DefRangeFramePointerRelative(DefRangeFramePointerRelativeSymbol), DefRangeFramePointerRelativeFullScope(DefRangeFramePointerRelativeFullScopeSymbol), DefRangeSubFieldRegister(DefRangeSubFieldRegisterSymbol), DefRangeRegisterRelative(DefRangeRegisterRelativeSymbol), BasePointerRelative(BasePointerRelativeSymbol<'t>), FrameProcedure(FrameProcedureSymbol), CallSiteInfo(CallSiteInfoSymbol), Callers(FunctionListSymbol), Callees(FunctionListSymbol), Inlinees(InlineesSymbol), ArmSwitchTable(ArmSwitchTableSymbol), HeapAllocationSite(HeapAllocationSiteSymbol), FrameCookie(FrameCookieSymbol), FileStatic(FileStaticSymbol<'t>),
}
Expand description

Information parsed from a Symbol record.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

ScopeEnd

End of a scope, such as a procedure.

§

ObjName(ObjNameSymbol<'t>)

Name of the object file of this module.

§

RegisterVariable(RegisterVariableSymbol<'t>)

A Register variable.

§

Constant(ConstantSymbol<'t>)

A constant value.

§

UserDefinedType(UserDefinedTypeSymbol<'t>)

A user defined type.

§

MultiRegisterVariable(MultiRegisterVariableSymbol<'t>)

A Register variable spanning multiple registers.

§

Data(DataSymbol<'t>)

Static data, such as a global variable.

§

Public(PublicSymbol<'t>)

A public symbol with a mangled name.

§

Procedure(ProcedureSymbol<'t>)

A procedure, such as a function or method.

§

ManagedProcedure(ManagedProcedureSymbol<'t>)

A managed procedure, such as a function or method.

§

ThreadStorage(ThreadStorageSymbol<'t>)

A thread local variable.

§

CompileFlags(CompileFlagsSymbol<'t>)

Flags used to compile a module.

§

UsingNamespace(UsingNamespaceSymbol<'t>)

A using namespace directive.

§

ProcedureReference(ProcedureReferenceSymbol<'t>)

Reference to a ProcedureSymbol.

§

DataReference(DataReferenceSymbol<'t>)

Reference to an imported variable.

§

Annotation(AnnotationSymbol<'t>)

Collection of annotation strings.

§

AnnotationReference(AnnotationReferenceSymbol<'t>)

Reference to an annotation.

§

TokenReference(TokenReferenceSymbol<'t>)

Reference to a managed procedure.

§

Trampoline(TrampolineSymbol)

Trampoline thunk.

§

Export(ExportSymbol<'t>)

An exported symbol.

§

Local(LocalSymbol<'t>)

A local symbol in optimized code.

§

ManagedSlot(ManagedSlotSymbol<'t>)

A managed local variable slot.

§

BuildInfo(BuildInfoSymbol)

Reference to build information.

§

InlineSite(InlineSiteSymbol<'t>)

The callsite of an inlined function.

§

InlineSiteEnd

End of an inline callsite.

§

ProcedureEnd

End of a procedure.

§

Label(LabelSymbol<'t>)

A label.

§

Block(BlockSymbol<'t>)

A block.

§

RegisterRelative(RegisterRelativeSymbol<'t>)

Data allocated relative to a register.

§

Thunk(ThunkSymbol<'t>)

A thunk.

§

SeparatedCode(SeparatedCodeSymbol)

A block of separated code.

§

OEM(OemSymbol<'t>)

OEM information.

§

EnvBlock(EnvBlockSymbol<'t>)

Environment block split off from S_COMPILE2.

§

Section(SectionSymbol<'t>)

A COFF section in a PE executable.

§

CoffGroup(CoffGroupSymbol<'t>)

A COFF group.

§

DefRange(DefRangeSymbol)

A live range of a variable.

§

DefRangeSubField(DefRangeSubFieldSymbol)

A live range of a sub field of a variable.

§

DefRangeRegister(DefRangeRegisterSymbol)

A live range of a register variable.

§

DefRangeFramePointerRelative(DefRangeFramePointerRelativeSymbol)

A live range of a frame pointer-relative variable.

§

DefRangeFramePointerRelativeFullScope(DefRangeFramePointerRelativeFullScopeSymbol)

A frame-pointer variable which is valid in the full scope of the function.

§

DefRangeSubFieldRegister(DefRangeSubFieldRegisterSymbol)

A live range of a sub field of a register variable.

§

DefRangeRegisterRelative(DefRangeRegisterRelativeSymbol)

A live range of a variable related to a register.

§

BasePointerRelative(BasePointerRelativeSymbol<'t>)

A base pointer-relative variable.

§

FrameProcedure(FrameProcedureSymbol)

Extra frame and proc information.

§

CallSiteInfo(CallSiteInfoSymbol)

Indirect call site information.

§

Callers(FunctionListSymbol)

Callers of a function.

§

Callees(FunctionListSymbol)

Callees of a function.

§

Inlinees(InlineesSymbol)

Inlinees of a function.

§

ArmSwitchTable(ArmSwitchTableSymbol)

Describes the layout of a jump table

§

HeapAllocationSite(HeapAllocationSiteSymbol)

Heap allocation site

§

FrameCookie(FrameCookieSymbol)

A security cookie on a stack frame

§

FileStatic(FileStaticSymbol<'t>)

A static file symbol.

Implementations§

Source§

impl<'t> SymbolData<'t>

Source

pub fn name(&self) -> Option<RawString<'t>>

Returns the name of this symbol if it has one.

Trait Implementations§

Source§

impl<'t> Clone for SymbolData<'t>

Source§

fn clone(&self) -> SymbolData<'t>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'t> Debug for SymbolData<'t>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'t> PartialEq for SymbolData<'t>

Source§

fn eq(&self, other: &SymbolData<'t>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'t> TryFromCtx<'t> for SymbolData<'t>

Source§

type Error = Error

Source§

fn try_from_ctx(this: &'t [u8], _ctx: ()) -> Result<(Self, usize)>

Source§

impl<'t> Eq for SymbolData<'t>

Source§

impl<'t> StructuralPartialEq for SymbolData<'t>

Auto Trait Implementations§

§

impl<'t> Freeze for SymbolData<'t>

§

impl<'t> RefUnwindSafe for SymbolData<'t>

§

impl<'t> Send for SymbolData<'t>

§

impl<'t> Sync for SymbolData<'t>

§

impl<'t> Unpin for SymbolData<'t>

§

impl<'t> UnwindSafe for SymbolData<'t>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.