Table of Contents

Class PdbStream

Namespace
AsmResolver.PE.DotNet.Metadata
Assembly
AsmResolver.PE.dll

Represents the metadata stream containing Portable PDB debug data that is associated to a .NET module.

public class PdbStream : SegmentBase, IMetadataStream, ISegment, IOffsetProvider, IWritable
Inheritance
PdbStream
Implements
Derived
Inherited Members

Fields

DefaultName

The default name of a PDB stream, as described in the specification provided by Portable PDB v1.0.

public const string DefaultName = "#Pdb"

Field Value

string

Properties

CanRead

Gets a value indicating whether the raw contents of the stream can be read using a binary stream reader.

public virtual bool CanRead { get; }

Property Value

bool

EntryPoint

Gets or sets the token of the entry point method, or 9 if not applicable.

public MetadataToken EntryPoint { get; set; }

Property Value

MetadataToken

Remarks

This should be the same value as stored in the metadata header.

Id

Gets the unique identifier representing the debugging metadata blob content.

public byte[] Id { get; }

Property Value

byte[]

Name

Gets or sets the name of the metadata stream.

public string Name { get; set; }

Property Value

string

TypeSystemRowCounts

Gets an array of row counts of every portable PDB table in the tables stream.

public uint[] TypeSystemRowCounts { get; }

Property Value

uint[]

Methods

ComputeReferencedTypeSystemTables()

Computes the valid bitmask for the type system table rows referenced by this pdb stream.

public ulong ComputeReferencedTypeSystemTables()

Returns

ulong

The bitmask.

CreateReader()

Creates a binary reader that reads the raw contents of the metadata stream.

public virtual BinaryStreamReader CreateReader()

Returns

BinaryStreamReader

The reader.

Exceptions

InvalidOperationException

Occurs when CanRead is false.

GetPhysicalSize()

Computes the number of bytes that the structure contains.

public override uint GetPhysicalSize()

Returns

uint

The number of bytes.

UpdateRowCounts(TablesStream)

Synchronizes the row counts stored in TypeSystemRowCounts with the tables in the provided tables stream.

public void UpdateRowCounts(TablesStream stream)

Parameters

stream TablesStream

The tables stream to pull the data from.

UpdateRowCounts(uint[])

Synchronizes the row counts stored in TypeSystemRowCounts with the tables in the provided tables stream row counts.

public void UpdateRowCounts(uint[] rowCounts)

Parameters

rowCounts uint[]

The tables stream row counts to pull in.

Write(BinaryStreamWriter)

Serializes the structure to an output stream.

public override void Write(BinaryStreamWriter writer)

Parameters

writer BinaryStreamWriter

The output stream to write the data to.