Table of Contents

Class ClassTypeRecord

Namespace
AsmResolver.Symbols.Pdb.Leaves
Assembly
AsmResolver.Symbols.Pdb.dll

Represents a class, structure or interface type in a PDB.

public class ClassTypeRecord : CodeViewDerivedTypeRecord, ITpiLeaf, ICodeViewLeaf
Inheritance
ClassTypeRecord
Implements
Derived
Inherited Members

Constructors

ClassTypeRecord(CodeViewLeafKind, Utf8String, Utf8String, ulong, StructureAttributes, CodeViewTypeRecord?)

Creates a new class type record.

public ClassTypeRecord(CodeViewLeafKind kind, Utf8String name, Utf8String uniqueName, ulong size, StructureAttributes attributes, CodeViewTypeRecord? baseType)

Parameters

kind CodeViewLeafKind

The kind.

name Utf8String

The name of the type.

uniqueName Utf8String

The unique mangled name of the type.

size ulong

The size in bytes of the type.

attributes StructureAttributes

Attributes describing the shape of the type.

baseType CodeViewTypeRecord

The type that this type is derived from, if any.

Exceptions

ArgumentOutOfRangeException

Occurs when the provided kind is not a class, structure or interface.

ClassTypeRecord(CodeViewLeafKind, uint)

Initializes an empty class type.

protected ClassTypeRecord(CodeViewLeafKind kind, uint typeIndex)

Parameters

kind CodeViewLeafKind

The kind of type.

typeIndex uint

The type index to assign to the class type.

Exceptions

ArgumentOutOfRangeException

Occurs when the provided kind is not a class, structure or interface.

Properties

LeafKind

Gets the type kind this record encodes.

public override CodeViewLeafKind LeafKind { get; }

Property Value

CodeViewLeafKind

Size

Gets or sets the number bytes that this class spans.

public ulong Size { get; set; }

Property Value

ulong

UniqueName

Gets or sets the uniquely identifiable name for this type.

public Utf8String UniqueName { get; set; }

Property Value

Utf8String

VTableShape

Gets or sets the shape of the virtual function table of this type, if available.

public VTableShapeLeaf? VTableShape { get; set; }

Property Value

VTableShapeLeaf

Methods

GetUniqueName()

Obtains the uniquely identifiable name of the type.

protected virtual Utf8String GetUniqueName()

Returns

Utf8String

The name.

Remarks

This method is called upon initialization of the UniqueName property.

GetVTableShape()

Obtains the shape of the virtual function table name of the type.

protected virtual VTableShapeLeaf? GetVTableShape()

Returns

VTableShapeLeaf

The shape.

Remarks

This method is called upon initialization of the VTableShape property.