Partilhar via


Método de ICorDebugThread::SetDebugState

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

HRESULT SetDebugState (
    [in] CorDebugThreadState state
);

Parâmetros

  • state
    [in] Uma combinação bit a bit de CorDebugThreadState valores de enumeração para especificam o estado de depuração deste segmento.

Comentários

SetDebugStateDefine o estado atual de depuração do segmento. (O "debug estado atual" representa o estado de depuração se o processo de continuação, não o estado atual real.) O valor normal para isso é THREAD_RUNNING. Somente o depurador pode afetar o estado de depuração de um thread. Debug declara o último continua na horizontal, portanto, se você desejar manter um thread THREAD_SUSPENDed sobre vários continua, você pode defini-la uma vez e depois disso não ter que se preocupar sobre ele. Suspensão threads e o processo podem causar deadlocks, embora seja improvável normalmente. Isso é uma qualidade intrínseca de threads e processos e pelo design. Um depurador assincronamente pode interromper e retomar os threads para quebrar o deadlock. Se o estado do segmento usuário inclui USER_UNSAFE_POINT, o thread pode bloquear uma coleta de lixo (GC). Isso significa que o thread suspenso tem uma chance muito maior de causar um deadlock. Isso não pode afetar os eventos na fila de depuração. Assim, um depurador deve dissipada a fila de eventos inteira (chamando ICorDebugController::HasQueuedCallbacks) antes de suspender ou retomar os threads. Else, ele poderá obter eventos em um thread que acredita que já suspendeu.

Requisitos

Plataformas: Consulte Requisitos de sistema do .NET Framework.

Cabeçalho: CorDebug.idl, CorDebug.h

Biblioteca: CorGuids.lib

.NET Framework versões: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

Consulte também

Referência

Interface de ICorDebugThread

Interface de ICorDebugThread2