Class ProcedureSymbol
- Namespace
- AsmResolver.Symbols.Pdb.Records
- Assembly
- AsmResolver.Symbols.Pdb.dll
Represents either a local or a global procedure symbol in a PDB file.
public class ProcedureSymbol : CodeViewSymbol, IScopeCodeViewSymbol, ICodeViewSymbol, ICodeViewSymbolProvider
- Inheritance
-
ProcedureSymbol
- Implements
- Derived
- Inherited Members
Constructors
ProcedureSymbol()
Initializes an empty procedure symbol.
protected ProcedureSymbol()
ProcedureSymbol(Utf8String, FunctionIdentifier)
Creates a new procedure with the provided identifier.
public ProcedureSymbol(Utf8String name, FunctionIdentifier id)
Parameters
name
Utf8StringThe name of the procedure.
id
FunctionIdentifierThe function identifier of the procedure.
ProcedureSymbol(Utf8String, ProcedureTypeRecord)
Creates a new procedure with the provided procedure type.
public ProcedureSymbol(Utf8String name, ProcedureTypeRecord type)
Parameters
name
Utf8StringThe name of the procedure.
type
ProcedureTypeRecordThe type describing the shape of the procedure.
Properties
Attributes
Gets or sets attributes describing the nature of the procedure.
public ProcedureAttributes Attributes { get; set; }
Property Value
CodeViewSymbolType
Gets the type of symbol this record encodes.
public override CodeViewSymbolType CodeViewSymbolType { get; }
Property Value
DebugEndOffset
Gets or sets the end offset where the debug code or data begins of the procedure.
public uint DebugEndOffset { get; set; }
Property Value
DebugStartOffset
Gets or sets the start offset where the debug code or data begins of the procedure.
public uint DebugStartOffset { get; set; }
Property Value
FunctionId
Gets or sets the function identifier of the procedure (if available).
public FunctionIdentifier? FunctionId { get; set; }
Property Value
IsGlobal
Gets a value indicating whether the symbol is a global procedure symbol.
public bool IsGlobal { get; set; }
Property Value
IsLocal
Gets a value indicating whether the symbol is a local procedure symbol.
public bool IsLocal { get; set; }
Property Value
Name
Gets or sets the name of the procedure.
public Utf8String? Name { get; set; }
Property Value
Offset
Gets or sets the offset within the segment in which the procedure starts at.
public uint Offset { get; set; }
Property Value
ProcedureType
Gets or sets the type describing the shape of the procedure (if available).
public ProcedureTypeRecord? ProcedureType { get; set; }
Property Value
SegmentIndex
Gets or sets the segment index in which the procedure is defined in.
public ushort SegmentIndex { get; set; }
Property Value
Size
Gets or sets the size in bytes of the procedure.
public uint Size { get; set; }
Property Value
Symbols
Gets the list of defined symbols.
public IList<ICodeViewSymbol> Symbols { get; }
Property Value
Type
Gets or sets the type or identifier leaf describing the identifier or shape of the function.
public CodeViewLeaf? Type { get; set; }
Property Value
Methods
GetFunctionType()
Obtains the function type of this procedure.
protected virtual CodeViewLeaf? GetFunctionType()
Returns
- CodeViewLeaf
The function type.
Remarks
This method is called upon initialization of the Type property.
GetName()
Obtains the name of this procedure.
protected virtual Utf8String? GetName()
Returns
- Utf8String
The name.
Remarks
This method is called upon initialization of the Name property.
GetSymbols()
Obtains the sub-symbols defined in this procedure.
protected virtual IList<ICodeViewSymbol> GetSymbols()
Returns
- IList<ICodeViewSymbol>
The symbols.
Remarks
This method is called upon initialization of the Symbols property.
ToString()
Returns a string that represents the current object.
public override string ToString()
Returns
- string
A string that represents the current object.