Partager via


ICorDebugThread ::SetDebugState, méthode

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

Syntaxe

HRESULT SetDebugState (
    [in] CorDebugThreadState state
);

Paramètres

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

Remarques

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 continuent de se poursuivre. Par conséquent, si vous souhaitez conserver un thread THREAD_SUSPENDed sur plusieurs continue, vous pouvez le définir une fois et par la suite ne pas avoir à vous soucier de celui-ci. La suspension des threads et la reprise du processus peuvent entraîner des interblocages, bien qu’il soit généralement peu probable. Il s’agit d’une qualité intrinsèque de threads et de processus et est par conception. Un débogueur peut interrompre et reprendre de façon asynchrone les threads pour briser le blocage. Si l’état utilisateur du thread inclut USER_UNSAFE_POINT, le thread peut bloquer un 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. Par conséquent, un débogueur doit vider l’ensemble de la file d’attente d’événements (en appelant ICorDebugController ::HasQueuedCallbacks) avant de suspendre ou de reprendre des threads. Sinon, il peut obtenir des événements sur un thread qu’il croit qu’il a déjà suspendu.

Spécifications

Plates-formes: Consultez les systèmes d’exploitation pris en charge par .NET.

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

Bibliothèque: CorGuids.lib

Versions de .NET : Disponible depuis .NET Framework 1.0