Table of Contents

Class DumpReader

Namespace
Microsoft.Samples.Debugging.Native
Assembly
NativeDebugWrappers.dll

Read contents of a minidump. If we have a 32-bit dump, then there's an addressing collision possible. OS debugging code sign extends 32 bit wide addresses into 64 bit wide addresses. The CLR does not sign extend, thus you cannot round-trip target addresses exposed by this class. Currently we read these addresses once and don't hand them back, so it's not an issue.

public sealed class DumpReader : IDisposable
Inheritance
DumpReader
Implements

Constructors

DumpReader(string)

Constructor

Properties

OSVersion

Operating system that the dump was taken on.

OSVersionString

Friendly helper to get full OS version string (including CSDVersion) that the dump was taken on.

ProcessorArchitecture

The processor architecture that this dump was taken on.

Version

Version numbers of OS that this dump was taken on.

Methods

Dispose()

Dispose method.

EnumerateModules()

Enumerate all the modules in the dump.

EnumerateThreads()

Enumerate all the native threads in the dump

ExceptionStreamThreadId()

Return the TID from the exception stream.

GetThread(int)

Get the thread for the given thread Id.

IsExceptionStream()

Check on whether there's an exception stream in the dump

LookupModule(string)

Lookup the first module in the target with a matching.

ReadMemory(ulong, byte[])

Read memory from the dump file and copy into the buffer

ReadMemory(ulong, int)

Read memory from the dump file and return results in newly allocated buffer

ReadMemory(ulong, IntPtr, uint)

Read memory from target and copy it to the local buffer pointed to by destinationBuffer. Throw if any portion of the requested memory is unavailable.

ReadPartialMemory(ulong, IntPtr, uint)

Read memory from target and copy it to the local buffer pointed to by destinationBuffer.

ToString()

ToString override.

TryLookupModuleByAddress(ulong)

Return the module containing the target address, or null if no match.