Table of Contents

Namespace Microsoft.Samples.Debugging.Native

Classes

AMD64Context
ContextAccessor
ContextAllocator

Serves as the global method for creating a platform-specific context

DumpException

Base class for DumpReader exceptions

DumpFormatException

Dump is malformed or corrupted.

DumpMissingDataException

Dump is valid, but missing the requested data.

DumpModule

Represents a native module in a dump file. This is a flyweight object.

DumpReader

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.

DumpThread

Represents a thread from a minidump file. This is a flyweight object.

DumpUtility

Utility class to provide various random Native debugging operations.

IA64Context
NativeMethods
NativeMethods.SafeLoadLibraryHandle
NativeMethods.SafeMapViewHandle
PEReader

A very basic PE reader that can extract a few useful pieces of information

ReadMemoryFailureException

Thrown when failing to read memory from a target.

SafeWin32Handle
X86Context

Structs

CREATE_PROCESS_DEBUG_INFO
CREATE_THREAD_DEBUG_INFO
DebugEvent32

Matches DEBUG_EVENT layout on 32-bit architecture

DebugEvent64

Matches DEBUG_EVENT layout on 64-bit architecture

DebugEventHeader
DebugEventUnion
EXCEPTION_DEBUG_INFO

Information about an exception debug event.

EXCEPTION_RECORD

Information about an exception

EXIT_PROCESS_DEBUG_INFO
EXIT_THREAD_DEBUG_INFO
LOAD_DLL_DEBUG_INFO
ModuleInfo
NativeMethods.SYSTEM_INFO
OUTPUT_DEBUG_STRING_INFO
UNLOAD_DLL_DEBUG_INFO

Interfaces

IContextDirectAccessor

Exposes raw contents of the Context in IContext. This locks the buffer. Dispose this object to unlock the buffer

IMemoryReader

Interface to provide access to target

INativeContext

Interface to a context. This provides platform agnostic wrapper to a platform specific OS Context.

Enums

AMD64Flags
AMD64Offsets
AgnosticContextFlags

Platform agnostic flags used to extract platform-specific context flag values

ContextFlags
ContextSize
ExceptionCode

Common Exception codes

ExceptionRecordFlags

Flags for EXCEPTION_RECORD

IA64Flags
IA64Offsets
ImageFileMachine
NativeDebugEventCode

Native debug event Codes that are returned through NativeStop event

NativeMethods.ContinueStatus

Values to pass to ContinueDebugEvent for ContinueStatus

NativeMethods.CreateProcessFlags
NativeMethods.LoadLibraryFlags
NativeMethods.PageProtection
Platform
ProcessorArchitecture

Describes the ProcessorArchitecture in a SYSTEM_INFO field. This can also be reported by a dump file.

ThreadAccess
X86Flags
X86Offsets