Share via


ICorDebugProcess Interface

Represents a process that is executing managed code.

interface ICorDebugProcess : ICorDebugController {
    HRESULT _stdcall GetID([out] unsigned long* pdwProcessId);
    HRESULT _stdcall GetHandle([out] long* phProcessHandle);
    HRESULT _stdcall GetThread(
                    [in] unsigned long dwThreadId, 
                    [out] ICorDebugThread** ppThread);
    HRESULT _stdcall EnumerateObjects([out] ICorDebugObjectEnum** ppObjects);
    HRESULT _stdcall IsTransitionStub(
                    [in] uint64 address, 
                    [out] long* pbTransitionStub);
    HRESULT _stdcall IsOSSuspended(
                       [in] unsigned long threadID, 
                    [out] long* pbSuspended);
    HRESULT _stdcall GetThreadContext(
                    [in] unsigned long threadID, 
                    [in] unsigned int contextSize, 
                    [in, out] ICorDebugProcess context);
    HRESULT _stdcall SetThreadContext(
                    [in] unsigned long threadID, 
                    [in] unsigned int contextSize, 
                    [in] ICorDebugProcess context);
    HRESULT _stdcall ReadMemory(
                    [in] uint64 address, 
                    [in] unsigned long size, 
                    [out] ICorDebugProcess buffer, 
                    [out] ULONG_PTR* read);
    HRESULT _stdcall WriteMemory(
                    [in] uint64 address, 
                    [in] unsigned long size, 
                    [in] unsigned char* buffer, 
                    [out] ULONG_PTR* written);
    HRESULT _stdcall ClearCurrentException([in] unsigned long threadID);
    HRESULT _stdcall EnableLogMessages([in] long fOnOff);
    HRESULT _stdcall ModifyLogSwitch(
                    [in] unsigned short* pLogSwitchName, 
                    [in] long lLevel);
    HRESULT _stdcall EnumerateAppDomains([out] ICorDebugAppDomainEnum** ppAppDomains);
    HRESULT _stdcall GetObject([out] ICorDebugValue** ppObject);
    HRESULT _stdcall ThreadForFiberCookie(
                    [in] unsigned long fiberCookie, 
                    [out] ICorDebugThread** ppThread);
    HRESULT _stdcall GetHelperThreadID([out] unsigned long* pThreadID);
};

Methods

Method Description

ICorDebugProcess::ClearCurrentException Method

Clears the current unmanaged exception on the given thread.

ICorDebugProcess::EnableLogMessages Method

Enables and disables the sending of log messages to the debugger.

ICorDebugProcess::EnumerateAppDomains Method

Enumerates all of the application domains in the process.

ICorDebugProcess::EnumerateObjects Method

Not implemented.

ICorDebugProcess::GetHandle Method

Gets a handle to the process.

ICorDebugProcess::GetHelperThreadID Method

Gets the operating system (OS) thread ID for the debugger's internal helper thread.

ICorDebugProcess::GetID Method

Gets the operating system (OS) ID of the process.

ICorDebugProcess::GetObject Method

Not implemented.

ICorDebugProcess::GetThread Method

Gets the ICorDebugThread Interface instance that has the specified OS thread ID.

ICorDebugProcess::GetThreadContext Method

Gets the context for the given thread.

ICorDebugProcess::IsOSSuspended Method

Determines whether the thread has been suspended as a result of the debugger stopping the process.

ICorDebugProcess::IsTransitionStub Method

Determines whether an address is inside a stub that will cause a transition to managed code.

ICorDebugProcess::ModifyLogSwitch Method

Sets the severity level of the specified log switch.

ICorDebugProcess::ReadMemory Method

Reads memory from the process.

ICorDebugProcess::SetThreadContext Method

Sets the context for the given thread.

ICorDebugProcess::ThreadForFiberCookie Method

Deprecated.

ICorDebugProcess::WriteMemory Method

Writes data to an area of memory in the process.

Requirements

Platforms: Windows 2000, Windows XP, Windows Server 2003 family

Header: CorDebug.idl

Library: CorGuids.lib

.NET Framework Version: 2.0, 1.1, 1.0

See Also

Reference

ICorDebug Interface
ICorDebugProcess2 Interface

Other Resources

Debugging Interfaces