DkmVirtualThread Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
DkmVirtualThread représente un thread qui n’existe pas physiquement dans le processus débogué.
Cette API a été introduite dans Visual Studio 16 Update 2 (DkmApiVersion. VS16Update2).
public ref class DkmVirtualThread : Microsoft::VisualStudio::Debugger::DkmThread
[System.Runtime.InteropServices.Guid("bec7987a-48f1-dd04-3001-8c296365a14f")]
public class DkmVirtualThread : Microsoft.VisualStudio.Debugger.DkmThread
[<System.Runtime.InteropServices.Guid("bec7987a-48f1-dd04-3001-8c296365a14f")>]
type DkmVirtualThread = class
inherit DkmThread
Public Class DkmVirtualThread
Inherits DkmThread
- Héritage
- Attributs
Propriétés
| Connection |
Cela représente une connexion entre le moniteur et l’IDE. Il peut s’agir d’une connexion locale si le moniteur s’exécute dans le même processus que l’IDE, ou s’il peut s’agir d’une connexion à distance. Dans le processus d’analyse, il n’existe qu’une seule connexion. (Hérité de DkmThread) |
| IsMainThread |
True s’il s’agit du thread principal de ce processus. Le thread principal est le premier thread à démarrer. (Hérité de DkmThread) |
| IsUnloaded |
Retourne la valeur true si un événement non chargé a été déclenché pour cet objet (exemple : DkmThread :: Unload est appelé) ou si l’objet a été fermé. Notez que la prudence doit être utilisée lors de la vérification de cet État comme, sans synchronisation, l’état retourné peut ne plus être l’instruction après sa lecture. (Hérité de DkmDataContainer) |
| NativeStartAddress |
S’il est disponible, il s’agit de l’adresse de début Win32 de ce thread (valeur transmise à l’API CreateThread). La valeur n’est pas toujours disponible, par exemple, elle n’est généralement pas disponible dans les scénarios où le thread a été démarré après l’attachement du débogueur ou dans les minidumps. (Hérité de DkmThread) |
| Process |
DkmProcess représente un processus cible qui est en cours de débogage. Le débogueur débogue les processus. il s’agit donc de l’unité de base du débogage. Un DkmProcess peut représenter un processus système ou un processus virtuel tel que des minidumps. (Hérité de DkmThread) |
| SystemInformation |
Contient des informations sur le système informatique sous lequel ce thread s’exécute. Si ce thread s’exécute sous WOW (émulation 32 bits sur un système d’exploitation 64 bits), ces informations seront destinées au sous-système 32 bits et non au sous-système 64 bits. (Hérité de DkmThread) |
| SystemPart |
Facultatif Décrit les caractéristiques du thread qui s’appliquent à un thread Win32 complet. Actuellement, cette valeur est requise, et tous les threads auront un bloc « System ». À l’avenir, cette valeur peut être NULL si le DkmThread représente autre chose qu’un thread Win32 complet. (Hérité de DkmThread) |
| TebAddress |
Adresse dans le processus cible, où le bloc environnement Win32 thread est stocké. Pour plus d’informations, consultez la documentation sur la structure TEB dans MSDN. (Hérité de DkmThread) |
| UniqueId |
GUID qui identifie de façon unique cet objet thread. (Hérité de DkmThread) |
Méthodes
| BeginFuncEvalExecution(DkmFuncEvalFlags) |
Cette méthode est utilisée pour reprendre le processus cible afin qu’une évaluation de fonction puisse se produire. Cette fonction est appelée par un moniteur de débogage d’exécution après avoir configuré une évaluation de fonction pour que le processus cible s’exécute. Le moniteur d’exécution met d’abord à jour le contexte de thread, met à jour toute la mémoire nécessaire dans le processus cible et installe toute détection que l’évaluation de la fonction est terminée. Les appelants de cette méthode doivent toujours appeler EndFuncEvalExecution avant de retourner à partir de l’opération qui a déclenché l’évaluation de la fonction. Le comportement n’est pas défini si un appelant ne parvient pas à le faire. Cette méthode est implémentée dans le moniteur de débogage de base en mettant d’abord à jour le processus cible pour qu’il soit en mode évaluation de fonction (DkmThread. OnBeginFuncEvalExecution), puis en suspendant et/ou en reprenant les threads comme spécifié par les indicateurs d’évaluation de fonction et en poursuivant le processus cible. Cette méthode peut être appelée à partir de n’importe quel thread. Toutefois, OnBeginFuncEvalExecution doit être appelé à partir du thread d’arrêt. par conséquent, le moniteur de débogage de base peut avoir besoin d’effectuer un basculement de thread dans le cadre de l’implémentation de cette méthode. Le moniteur de débogage de base ne doit pas retourner à partir de BeginFuncEvalExecution tant que la cible n’a pas été reprise. (Hérité de DkmThread) |
| CanBeginFuncEvalExecution(DkmFuncEvalFlags) |
CanBeginFuncEvalExecution peut être appelé pour comprendre si l’état actuel du processus autorise des évaluations de fonctions. La valeur false est retournée, par exemple, si le DM de base a appelé StoppingEventProcessingBegin, mais pas StoppingEventProcessingContinue. Contrainte d’emplacement : l’API doit être appelée à partir d’un composant d’analyse (au niveau du composant < 100 000). Cette API a été introduite dans Visual Studio 16 Update 5 (DkmApiVersion. VS16Update5). (Hérité de DkmThread) |
| Create(DkmProcess, DkmThread+System, DkmDataItem) |
Créez une instance de l’objet DkmVirtualThread. Contrainte d’emplacement : l’API doit être appelée à partir d’un composant d’analyse (au niveau du composant < 100 000). Cette API a été introduite dans Visual Studio 16 Update 2 (DkmApiVersion. VS16Update2). |
| CreateFrameRegisters(DkmUnwoundRegister[], UInt32) |
Convertit un tableau de DkmUnwoundRegisters en une instance de DkmFrameRegisters contenant un DkmReadOnlyCollection trié de DkmUnwoundRegisters. (Hérité de DkmThread) |
| CreateRegistersObject(Byte[], DkmUnwoundRegister[], DkmUnwoundRegister[]) |
Crée un objet DkmFrameRegisters à partir du tableau d’octets fourni contenant une structure de contexte Win32. (Hérité de DkmThread) |
| EndFuncEvalExecution(DkmFuncEvalFlags) |
EndFuncEvalExecution est appelé par le moniteur de débogage du Runtime sur le thread d’événement pour quitter le mode d’évaluation de fonction. EndFuncEvalExecution met à jour l’état interne de l’objet DkmProcess pour indiquer que l’évaluation de la fonction s’est terminée. Cela entraîne également l’envoi d’un événement FuncEvalEnded et indique que le processus est arrêté. Cette méthode peut être appelée (1) lors du traitement d’une notification d’événement de type « received », ou-(2) lors du traitement d’un événement sans arrêt, tel que la sortie du thread,-ou-(3) pendant que la cible est encore arrêtée, par exemple si la configuration de l’évaluation de la fonction a échoué. (Hérité de DkmThread) |
| GetContext(Int32, Byte[]) |
Obtient le contexte actuel (valeurs de registre) d’un thread. (Hérité de DkmThread) |
| GetContext(Int32, Void*, Int32) |
Obtient le contexte actuel (valeurs de registre) d’un thread. (Hérité de DkmThread) |
| GetCurrentFrameInfo(UInt64, UInt64, UInt64) |
GetCurrentFrameInfo est utilisé pour obtenir la base de frame et l’adresse de retour pour le contexte actuel du thread. Cela prend en compte l’omission du pointeur de frame et si le pointeur d’instruction actuel est dans un prologue, épilogue, etc... Remarque : dans certains cas, cela peut être erroné si le frame a une omission de pointeur de frame et qu’aucun symbole n’est chargé. Contrainte d’emplacement : l’API doit être appelée à partir d’un composant d’analyse (au niveau du composant < 100 000). (Hérité de DkmThread) |
| GetCurrentFuncEvalMode() |
GetCurrentFuncEvalMode peut être appelé par les composants dans le cadre du traitement des événements pour déterminer si l’évaluation de fonction est activée. Cette fonction ne peut être appelée que dans le cadre du traitement des événements. (Hérité de DkmThread) |
| GetCurrentLocation(DkmWorkList, DkmCompletionRoutine<DkmGetCurrentLocationAsyncResult>) |
Fournit l’emplacement d’un thread, tel qu’il est visible dans la fenêtre threads, ou liste déroulante threads dans la barre d’outils emplacement de débogage. Cette méthode ajoute un nouvel élément de travail à la liste de travail spécifiée et retourne une fois que l’élément de travail a été ajouté. Le traitement réel de l’élément de travail est asynchrone. L’appelant est informé que la demande est terminée par le biais de la routine de saisie semi-automatique. Contrainte d’emplacement : l’API doit être appelée à partir d’un composant IDE (au niveau du composant > 100 000). (Hérité de DkmThread) |
| GetCurrentRegisters(DkmUnwoundRegister[]) |
Retourne un objet DkmFrameRegisters contenant les valeurs de Registre actuelles du thread. (Hérité de DkmThread) |
| GetDataItem<T>() |
Obtient l’instance de’t’qui a été ajoutée à cette instance de conteneur. Si ce conteneur ne contient pas de’t', cette fonction retournera la valeur null. (Hérité de DkmDataContainer) |
| GetDebuggerSuspensionCount() |
Retourne le nombre total de suspensions provoquées par le débogueur (c’est-à-dire les appels à DkmThread :: suspend sans appel à DkmThread :: Resume). Cela exclut toutes les suspensions externes au débogueur. (Hérité de DkmThread) |
| GetExtendedRegisters() |
Obtient les registres étendus à partir du contexte de thread. (Hérité de DkmThread) |
| GetManagedThreadProperties(DkmWorkList, DkmCompletionRoutine<DkmGetManagedThreadPropertiesAsyncResult>) |
Obtient les propriétés d’un thread managé. Cette méthode ajoute un nouvel élément de travail à la liste de travail spécifiée et retourne une fois que l’élément de travail a été ajouté. Le traitement réel de l’élément de travail est asynchrone. L’appelant est informé que la demande est terminée par le biais de la routine de saisie semi-automatique. (Hérité de DkmThread) |
| GetManagedThreadProperties(Int32) |
Obtient les propriétés d’un thread managé. (Hérité de DkmThread) |
| GetStackAddressRange() |
Récupère la base de la limite de pile/pile du thread donné. Notez que cette valeur peut changer au fil du temps, par exemple, dans le cas de fibres. (Hérité de DkmThread) |
| GetSteppers() |
GetSteppers énumère les éléments DkmStepper de cet objet DkmThread. (Hérité de DkmThread) |
| GetSuspensionCount(Boolean) |
Retourne le nombre de suspensions actuel de ce thread. (Hérité de DkmThread) |
| GetSuspensionCount(DkmWorkList, Boolean, DkmCompletionRoutine<DkmGetSuspensionCountAsyncResult>) |
Retourne le nombre de suspensions actuel de ce thread. Cette méthode ajoute un nouvel élément de travail à la liste de travail spécifiée et retourne une fois que l’élément de travail a été ajouté. Le traitement réel de l’élément de travail est asynchrone. L’appelant est informé que la demande est terminée par le biais de la routine de saisie semi-automatique. (Hérité de DkmThread) |
| GetThreadCurrentWinRtErrorInfo() |
GetThreadCurrentWinRtErrorInfo est utilisé pour obtenir l’adresse de l’objet IErrorInfo actuel pour ce thread. Cette API a été introduite dans Visual Studio 12 RTM (DkmApiVersion. VS12RTM). (Hérité de DkmThread) |
| GetTlsValue(Int32) |
Récupère la valeur de l’emplacement de stockage local des threads (TLS) du thread du programme débogué pour l’index TLS spécifié. Chaque thread d'un processus possède son propre emplacement pour chaque index TLS. (Hérité de DkmThread) |
| GetTopStackFrame() |
Retourne le frame de pile des appels supérieur pour un thread. Cette valeur est normalement mise en cache après le premier parcours de la pile et désactivée sur continuer. Cela peut être appelé uniquement au-dessus du fournisseur de pile dans le processus client. Pour obtenir le frame supérieur dans le processus serveur, appelez GetTopStackWalkFrame. Contrainte d’emplacement : l’API doit être appelée à partir d’un composant IDE (au niveau du composant > 100 000). (Hérité de DkmThread) |
| GetTopStackWalkFrame(DkmRuntimeInstance) |
Retourne le frame de pile supérieur d’un thread. Ce frame peut provenir d’une instance d’exécution ou d’un moniteur de déroulateur. Cela ne peut être appelé qu’à partir du processus serveur. Pour obtenir le frame supérieur dans le processus client, utilisez GetTopStackFrame. Contrainte d’emplacement : l’API doit être appelée à partir d’un composant d’analyse (au niveau du composant < 100 000). (Hérité de DkmThread) |
| GetVolatileFlags() |
Obtenir des indicateurs volatiles sur un thread. Par exemple, retourne si un thread est un thread planifié en mode utilisateur. (Hérité de DkmThread) |
| GetVolatileFlags(DkmWorkList, DkmCompletionRoutine<DkmGetVolatileFlagsAsyncResult>) |
Obtenir des indicateurs volatiles sur un thread. Par exemple, retourne si un thread est un thread planifié en mode utilisateur. Cette méthode ajoute un nouvel élément de travail à la liste de travail spécifiée et retourne une fois que l’élément de travail a été ajouté. Le traitement réel de l’élément de travail est asynchrone. L’appelant est informé que la demande est terminée par le biais de la routine de saisie semi-automatique. (Hérité de DkmThread) |
| GetVolatileProperties(DkmWorkList, DkmCompletionRoutine<DkmGetVolatilePropertiesAsyncResult>) |
Obtient les propriétés dynamiques d’un thread. Cette méthode ajoute un nouvel élément de travail à la liste de travail spécifiée et retourne une fois que l’élément de travail a été ajouté. Le traitement réel de l’élément de travail est asynchrone. L’appelant est informé que la demande est terminée par le biais de la routine de saisie semi-automatique. (Hérité de DkmThread) |
| GetVolatileProperties(Int32, UInt64) |
Obtient les propriétés dynamiques d’un thread. (Hérité de DkmThread) |
| IsStoppingEventQueued(Boolean) |
Indique si le thread donné a un événement d’arrêt dans la file d’attente. Ces informations sont utilisées par le gestionnaire d’exécution pour décider si un thread peut être glissé. (Hérité de DkmThread) |
| OnBeginFuncEvalExecution(DkmFuncEvalFlags) |
OnBeginFuncEvalExecution est appelé par le moniteur de débogage de base sur le thread d’événement. Cette méthode est appelée dans le cadre de l’implémentation de IDkmBaseFuncEvalService. BeginFuncEvalExecution, qui est appelée pour reprendre le processus pour une évaluation de fonction. OnBeginFuncEvalExecution met à jour l’état interne de l’objet DkmProcess pour indiquer qu’une évaluation de fonction est en cours. Cela enverra également un événement FuncEvalStarting et il marquera le processus comme étant en cours d’exécution, de sorte qu’aucune opération nécessitant un processus arrêté ne sera autorisée. (Hérité de DkmThread) |
| OnContinueExecution() |
OnContinueExecution est appelé par le moniteur de débogage de base sur le thread d’événement. Cette méthode est appelée dans le cadre de l’implémentation de IDkmContinueExecution. ContinueExecution, qui est utilisée par l’IDE pour continuer le processus cible. Cette méthode est utilisée par le répartiteur pour distribuer les événements d’arrêt qui n’ont pas pu être traités précédemment, ou pour mettre à jour l’état interne de l’objet DkmProcess pour indiquer que le processus cible est en cours d’exécution. Avant de marquer le processus comme en cours d’exécution, le répartiteur enverra un événement de continuation. Une analyse de débogage de base doit s’attendre à être appelée de façon réentrante alors qu’elle se trouve dans cette méthode. (Hérité de DkmThread) |
| OnEmbeddedBreakpointHit(DkmInstructionAddress, Boolean) |
Déclenchez un événement EmbeddedBreakpointHit. Les composants qui implémentent l’interface du récepteur d’événements recevront la notification d’événement. Cette méthode met en file d’attente l’événement et le contrôle retourne immédiatement à l’appelant. (Hérité de DkmThread) |
| OnInterceptExceptionCompleted(UInt64) |
Déclenchez un événement InterceptExceptionCompleted. Les composants qui implémentent l’interface du récepteur d’événements recevront la notification d’événement. Cette méthode met en file d’attente l’événement et le contrôle retourne immédiatement à l’appelant. (Hérité de DkmThread) |
| OnThreadNameChange() |
ThreadNameChange est envoyé par le répartiteur lorsque DkmThread :: NameChange, est appelé par l’analyse. Cette API a été introduite dans Visual Studio 14 RTM (DkmApiVersion. VS14RTM). (Hérité de DkmThread) |
| RaiseExecutionControlException(UInt32) |
API qui peut être appelée à partir d’une implémentation IDkmSingleStepCompleteReceived ou IDkmRuntimeBreakpointReceived pour forcer le DM de base à déclencher l’exception EXCEPTION_BREAKPOINT ou EXCEPTION_SINGLE_STEP dans le processus cible lors de la reprise de l’exécution. Normalement, l’exception de point d’arrêt ou d’étape unique est implicitement supprimée. Cela permet aux gestionnaires d’exceptions de gérer le EXCEPTION_BREAKPOINT/EXCEPTION_SINGLE_STEP au sein du processus cible. Cette API échoue si le thread n’est pas actuellement assis à un événement de fin d’étape ou de point d’arrêt. Contrainte d’emplacement : l’API doit être appelée à partir d’un composant d’analyse (au niveau du composant < 100 000). (Hérité de DkmThread) |
| RemoveDataItem<T>() |
Supprimez l’instance de’t’de ce conteneur. Il n’est généralement pas nécessaire d’appeler cette méthode, car un conteneur de données est automatiquement vidé lorsque l’objet est fermé. (Hérité de DkmDataContainer) |
| Resume(Boolean) |
Reprendre ce thread. (Hérité de DkmThread) |
| SetContext(Byte[]) |
Met à jour le contexte (valeurs de registre) d’un thread. (Hérité de DkmThread) |
| SetDataItem<T>(DkmDataCreationDisposition, T) |
Placez un nouvel élément dans le conteneur de données. (Hérité de DkmDataContainer) |
| SetExtendedRegisterValue(Int32, ReadOnlyCollection<Byte>) |
Définit la valeur du Registre étendu dans le contexte du thread. (Hérité de DkmThread) |
| SetTlsValue(Int32, UInt64) |
Stocke une valeur dans l’emplacement de stockage local des threads (TLS) du thread du programme débogué pour l’index TLS spécifié. Chaque thread d'un processus possède son propre emplacement pour chaque index TLS. (Hérité de DkmThread) |
| Suspend(Boolean) |
Suspend ce thread. (Hérité de DkmThread) |
| Unload(Int32) |
ThreadExit est envoyé par le répartiteur lorsque DkmThread :: Unload est appelé par le moniteur. Cette méthode peut uniquement être appelée par le composant qui a créé l’objet. (Hérité de DkmThread) |