ICorDebugController Interface

Represents a scope, either a Process or an AppDomain, in which code execution context can be controlled.

interface ICorDebugController : IUnknown {
    
    /*  OBSOLETE  */
    HRESULT CanCommitChanges (
        [in] ULONG cSnapshots,
        [in, size_is(cSnapshots)] 
            ICorDebugEditAndContinueSnapshot *pSnapshots[],
        [out] ICorDebugErrorInfoEnum **pError
    );
    
    /*  OBSOLETE  */
    HRESULT CommitChanges (
        [in] ULONG cSnapshots,
        [in, size_is(cSnapshots)]
            ICorDebugEditAndContinueSnapshot *pSnapshots[],
        [out] ICorDebugErrorInfoEnum **pError
    );
    
    HRESULT Continue (
        [in] BOOL fIsOutOfBand
    );
    
    HRESULT Detach ();
    
    HRESULT EnumerateThreads (
        [out] ICorDebugThreadEnum **ppThreads
    );
    
    HRESULT HasQueuedCallbacks (
        [in] ICorDebugThread *pThread,
        [out] BOOL *pbQueued
    );
    
    HRESULT IsRunning (
        [out] BOOL *pbRunning
    );
    
    HRESULT SetAllThreadsDebugState (
        [in] CorDebugThreadState state,
        [in] ICorDebugThread *pExceptThisThread
    );
    
    HRESULT Stop (
        [in] DWORD dwTimeoutIgnored
    );
    
    HRESULT Terminate (
        [in] UINT exitCode
    );
    
};

Methods

Method

Description

ICorDebugController::CanCommitChanges

This method is obsolete.

ICorDebugController::CommitChanges

This method is obsolete.

ICorDebugController::Continue Method

Resumes execution of managed threads after a call to ICorDebugController::Stop.

ICorDebugController::Detach Method

Detaches the debugger from the process or application domain.

ICorDebugController::EnumerateThreads Method

Gets an enumerator for the active managed threads in the process.

ICorDebugController::HasQueuedCallbacks Method

Gets a value that indicates whether any managed callbacks are currently queued for the specified thread.

ICorDebugController::IsRunning Method

Gets a value that indicates whether the threads in the process are currently running freely.

ICorDebugController::SetAllThreadsDebugState Method

Sets the debug state of all managed threads in the process.

ICorDebugController::Stop Method

Performs a cooperative stop on all threads that are running managed code in the process.

ICorDebugController::Terminate Method

Terminates the process with the specified exit code.

Remarks

If ICorDebugController is controlling a process, the scope includes all threads of the process. If ICorDebugController is controlling an application domain, the scope includes only the threads of that particular application domain.

Requirements

Platforms: See .NET Framework System Requirements.

Header: CorDebug.idl

Library: CorGuids.lib

.NET Framework Versions: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

See Also

Other Resources

Debugging Interfaces