Método ICorDebugThread::SetDebugState

Define sinalizadores que descrevem o estado de depuração deste ICorDebugThread.

Sintaxe

HRESULT SetDebugState (  
    [in] CorDebugThreadState state  
);  

Parâmetros

state
[in] Uma combinação bit a bit de valores de enumeração CorDebugThreadState que especificam o estado de depuração desse thread.

Comentários

SetDebugState define o estado de depuração atual do thread. (O "estado de depuração atual" representará o estado de depuração se o processo for continuado, não o estado atual real.) O valor normal para isso é THREAD_RUN. Somente o depurador pode afetar o estado de depuração de um thread. Os estados de depuração realmente duram entre as continuações, portanto, se você quiser manter um thread THREAD_SUSPENDed em vários continuações, poderá defini-lo uma vez e depois não precisará se preocupar com isso. Suspender threads e retomar o processo pode causar deadlocks, embora isso geralmente seja improvável. Essa é uma qualidade intrínseca de threads e processos e é por padrão. Um depurador pode interromper e retomar os threads de forma assíncrona para interromper o deadlock. Se o estado do usuário do thread incluir USER_UNSAFE_POINT, o thread poderá bloquear uma GC (coleta de lixo). Isso significa que o thread suspenso tem uma chance muito maior de causar um deadlock. Isso pode não afetar os eventos de depuração já na fila. Portanto, um depurador deve drenar toda a fila de eventos (chamando ICorDebugController::HasQueuedCallbacks) antes de suspender ou retomar threads. Caso contrário, ele poderá obter eventos em um thread que acredita já ter suspendido.

Requisitos

Plataformas: confira Requisitos do sistema.

Cabeçalho: CorDebug.idl, CorDebug.h

Biblioteca: CorGuids.lib

Versões do .NET Framework: Disponíveis desde a versão 1.0