Partilhar via


Método ICorDebugThread::SetDebugState

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

Sintaxe

HRESULT SetDebugState (
    [in] CorDebugThreadState state
);

Parâmetros

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

Observações

SetDebugState Define o estado de depuração atual do thread. (O "estado de depuração atual" representa 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 duram em continua, portanto, se você quiser manter um thread THREAD_SUSPENDed em várias continuações, você pode defini-lo uma vez e, posteriormente, não precisa se preocupar com isso. Suspender threads e retomar o processo pode causar impasses, embora geralmente seja improvável. Esta é uma qualidade intrínseca de threads e processos e é by-design. Um depurador pode quebrar e retomar os threads de forma assíncrona para quebrar o deadlock. Se o estado do usuário do thread incluir USER_UNSAFE_POINT, o thread poderá bloquear uma coleta de lixo (GC). Isso significa que o fio suspenso tem uma chance muito maior de causar um impasse. Isso pode não afetar os eventos de depuração já enfileirados. Assim, um depurador deve drenar toda a fila de eventos (chamando ICorDebugController::HasQueuedCallbacks) antes de suspender ou retomar threads. Caso contrário, pode ter eventos em um tópico que acredita já ter suspendido.

Requisitos

Plataformas: Consulte Requisitos do sistema.

Cabeçalho: CorDebug.idl, CorDebug.h

Biblioteca: CorGuids.lib

Versões do .NET Framework: Disponível desde 1.0