DkmExceptionInformation Class

Definition

Provides information about an exception which was raised in the target process. This information includes details of what exception was raised and the current stage of exception processing.

Derived classes: DkmClrExceptionInformation, DkmCppExceptionInformation, DkmCustomExceptionInformation, DkmGPUMemoryAccessExceptionInformation, DkmWin32ExceptionInformation

public ref class DkmExceptionInformation abstract
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DkmExceptionInformation abstract
[Windows::Foundation::Metadata::WebHostHidden]
class DkmExceptionInformation abstract
[System.Runtime.InteropServices.Guid("02e0d36d-e7ec-ebb8-105e-1b6ac73701ff")]
public abstract class DkmExceptionInformation
[<System.Runtime.InteropServices.Guid("02e0d36d-e7ec-ebb8-105e-1b6ac73701ff")>]
type DkmExceptionInformation = class
Public MustInherit Class DkmExceptionInformation
Inheritance
DkmExceptionInformation
Derived
Attributes

Properties

Code

32-bit integer code for the exception. For Win32 exceptions, this is the code passed to RaiseException (ex:EXCEPTION_ACCESS_VIOLATION). This value is zero for exception categories that identify exceptions by string (ex: CLR).

ExceptionCategory

Indicates the type of exception.

ImplementationException

[Optional] Information about the underlying exception used to implement a higher level exception. For example, CLR and C++ exceptions may be implemented on top of Win32 exceptions. So this may store the DkmWin32ExceptionInformation for CLR or C++ exceptions.

InstructionAddress

[Optional] Address where the exception occurred. This will always be present for C++ and Win32 exceptions. It may be missing from CLR exceptions or MDAs as these may originate from inside the runtime.

Name

[Optional] Name of the exception. For C++ or CLR exceptions, this is the type name. This value will be null for exception categories that identify exceptions by code (ex: Win32).

Process

DkmProcess represents a target process which is being debugged. The debugger debugs processes, so this is the basic unit of debugging. A DkmProcess can represent a system process or a virtual process such as minidumps.

ProcessingStage

The debugger receives notifications from the target process at various stages within exception processing (ex: exception thrown, exception unhandled). This enumeration indicates the stage(s) for a notification.

RuntimeInstance

The DkmRuntimeInstance class represents an execution environment which is loaded into a DkmProcess and which contains code to be debugged.

TagValue

DkmExceptionInformation is an abstract base class. This enum indicates which derived class this object is an instance of.

Thread

DkmThread represents a thread running in the target process.

Methods

CanModifyProcessing()

Determines if processing for this exception may be modified by the debugger. For example, if this user has performed an action (such as set next statement) that required the exception to be implicitly squashed, this may return false. This method may also return false if the runtime does not permit the exception from being squashed.

GetAdditionalInformation()

Provides additional information about an exception which will appear when Visual Studio stops on the exception. For CLR exceptions, this contains the 'Message' property from the System.Exception which was thrown.

Location constraint: API must be called from a Monitor component (component level < 100,000).

GetDescription()

Provides a string description for an exception. This is used when tracing the exception to the output window.

Location constraint: API must be called from a Monitor component (component level < 100,000).

GetExceptionDetails(DkmInspectionSession)

Get the exception details for this exception.

This API was introduced in Visual Studio 15 RTM (DkmApiVersion.VS15RTM).

GetExceptionStackTrace()

Obtains the captured stack trace associated with the exception, if one is available.

This API was introduced in Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

GetWinRTErrorInfo(String, String, String)

Provides developer-oriented additional information about the exception. This info should be displayed along with GetDescription and GetAdditionalInformation to clarify the cause of the error.

Location constraint: API must be called from a Monitor component (component level < 100,000).

OnContinued()

Raise a ExceptionContinued event. Components which implement the event sink interface will receive the event notification. Control will return once all components have been notified.

Location constraint: API must be called from a Monitor component (component level < 100,000).

OnDebugMonitorException()

Raise a DebugMonitorException event. Components which implement the event sink interface will receive the event notification. Control will return once all components have been notified.

Location constraint: API must be called from a Monitor component (component level < 100,000).

OnOutOfBandException()

Raise a OutOfBandException event. Components which implement the event sink interface will receive the event notification. Control will return once all components have been notified.

Location constraint: API must be called from a Monitor component (component level < 100,000).

This API was introduced in Visual Studio 11 Update 1 (DkmApiVersion.VS11FeaturePack1).

SquashProcessing()

Updates the state of the target process so that when execution is resumed, the target process will not continue standard exception processing (ex: handler search, stack unwinding). This method needs to be called before resuming execution.

Applies to