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