Table of Contents

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 Utf8String

The name of the procedure.

id FunctionIdentifier

The 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 Utf8String

The name of the procedure.

type ProcedureTypeRecord

The 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

ProcedureAttributes

CodeViewSymbolType

Gets the type of symbol this record encodes.

public override CodeViewSymbolType CodeViewSymbolType { get; }

Property Value

CodeViewSymbolType

DebugEndOffset

Gets or sets the end offset where the debug code or data begins of the procedure.

public uint DebugEndOffset { get; set; }

Property Value

uint

DebugStartOffset

Gets or sets the start offset where the debug code or data begins of the procedure.

public uint DebugStartOffset { get; set; }

Property Value

uint

FunctionId

Gets or sets the function identifier of the procedure (if available).

public FunctionIdentifier? FunctionId { get; set; }

Property Value

FunctionIdentifier

IsGlobal

Gets a value indicating whether the symbol is a global procedure symbol.

public bool IsGlobal { get; set; }

Property Value

bool

IsLocal

Gets a value indicating whether the symbol is a local procedure symbol.

public bool IsLocal { get; set; }

Property Value

bool

Name

Gets or sets the name of the procedure.

public Utf8String? Name { get; set; }

Property Value

Utf8String

Offset

Gets or sets the offset within the segment in which the procedure starts at.

public uint Offset { get; set; }

Property Value

uint

ProcedureType

Gets or sets the type describing the shape of the procedure (if available).

public ProcedureTypeRecord? ProcedureType { get; set; }

Property Value

ProcedureTypeRecord

SegmentIndex

Gets or sets the segment index in which the procedure is defined in.

public ushort SegmentIndex { get; set; }

Property Value

ushort

Size

Gets or sets the size in bytes of the procedure.

public uint Size { get; set; }

Property Value

uint

Symbols

Gets the list of defined symbols.

public IList<ICodeViewSymbol> Symbols { get; }

Property Value

IList<ICodeViewSymbol>

Type

Gets or sets the type or identifier leaf describing the identifier or shape of the function.

public CodeViewLeaf? Type { get; set; }

Property Value

CodeViewLeaf

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.