Partager via


ICorDebugThread::SetDebugState, méthode

Définit des indicateurs qui décrivent l’état de débogage de cet élément ICorDebugThread.

Syntaxe

HRESULT SetDebugState (  
    [in] CorDebugThreadState state  
);  

Paramètres

state
[in] Combinaison au niveau du bit des valeurs de l’énumération CorDebugThreadState qui spécifient l’état de débogage de ce thread.

Notes

SetDebugState définit l’état de débogage actuel du thread. (L’« état de débogage actuel » représente l’état de débogage si le processus devait être poursuivi, et non l’état actuel réel). La valeur normale de ce paramètre est THREAD_RUN. Seul le débogueur peut affecter l’état de débogage d’un thread. Les états de débogage se maintiennent au fil des continuations. Par conséquent, si vous souhaitez maintenir un thread à l’état THREAD_SUSPENDed sur plusieurs continuations, vous pouvez le définir une fois et ne plus vous en soucier. La suspension des threads et la reprise du processus peuvent entraîner des interblocages, même si la probabilité est faible. Il s’agit d’une qualité intrinsèque, et par conception, des threads et des processus. Un débogueur peut arrêter et reprendre les threads de façon asynchrone pour sortir de l’interblocage. Si l’état utilisateur du thread inclut USER_UNSAFE_POINT, le thread peut bloquer une garbage collection (GC). Cela signifie que le thread suspendu a une probabilité beaucoup plus élevée d’entraîner un interblocage. Cela peut ne pas affecter les événements de débogage déjà mis en file d’attente. Ainsi, un débogueur doit vider l’intégralité de la file d’attente d’événements (en appelant ICorDebugController::HasQueuedCallbacks) avant d’interrompre ou de reprendre des threads. Sinon, il risque d’obtenir des événements sur un thread qu’il croit avoir déjà interrompu.

Spécifications

Plateformes : Consultez Configuration requise.

En-tête : CorDebug.idl, CorDebug.h

Bibliothèque : CorGuids.lib

Versions de .NET Framework : Disponible à partir de la version 1.0