DkmCustomRuntimeInstance Classe

Définition

Représente l’environnement d’exécution personnalisé s’exécutant dans le processus cible.

public ref class DkmCustomRuntimeInstance : Microsoft::VisualStudio::Debugger::DkmRuntimeInstance
[System.Runtime.InteropServices.Guid("83e44dea-5cac-3e7d-c980-118728716623")]
public class DkmCustomRuntimeInstance : Microsoft.VisualStudio.Debugger.DkmRuntimeInstance
[<System.Runtime.InteropServices.Guid("83e44dea-5cac-3e7d-c980-118728716623")>]
type DkmCustomRuntimeInstance = class
    inherit DkmRuntimeInstance
Public Class DkmCustomRuntimeInstance
Inherits DkmRuntimeInstance
Héritage
Attributs

Propriétés

Capabilities

Énumération des fonctionnalités du Runtime.

         Cette API a été introduite dans Visual Studio 12 RTM (DkmApiVersion. VS12RTM).
(Hérité de DkmRuntimeInstance)
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 DkmRuntimeInstance)
Id

Identifie un objet DkmRuntimeInstance dans un processus.

(Hérité de DkmRuntimeInstance)
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)
ParentRuntime

Facultatif Pour les runtimes implémentés au-dessus d’un autre Runtime, cela peut éventuellement être utilisé pour indicant le parent logique. Il peut ensuite être utilisé pour demander des services au parent lorsque le runtime enfant n’implémente pas le service. Actuellement utilisé uniquement pour obtenir le frame de pile supérieur pour évaluer un point d’arrêt conditionnel lorsque le runtime enfant ne parcourt pas les piles.

Cette API a été introduite dans Visual Studio 12 RTM (DkmApiVersion. VS12RTM).

(Hérité de DkmRuntimeInstance)
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 DkmRuntimeInstance)
TagValue

DkmRuntimeInstance est une classe de base abstraite. Cette énumération indique la classe dérivée dont cet objet est une instance.

(Hérité de DkmRuntimeInstance)

Méthodes

AfterSteppingArbitration(DkmStepper, DkmStepArbitrationReason, DkmRuntimeInstance)

AfterSteppingArbitration est appelé par le gestionnaire de pas à pas sur l’ancienne instance de Runtime de contrôle après l’exécution pas à pas de l’arbitrage, mais avant le démarrage du pas à pas de l’instance suivante du Runtime. Cela permet aux runtimes d’effacer tout état pas à pas si un autre Runtime a pris le contrôle. Si aucun autre moniteur d’exécution n’a demandé l’emplacement actuel, l’analyse d’origine doit terminer l’étape. Cela est indiqué par la valeur de NewControllingRuntimeInstance null. Par exemple, une instance d’exécution peut choisir d’effectuer un pas à pas principal si un pas à pas a été débarqué dans un emplacement sans symboles et qu’aucun autre Runtime n’a pris le contrôle.

Contrainte d’emplacement : l’API doit être appelée à partir d’un composant d’analyse (au niveau du composant < 100 000).

(Hérité de DkmRuntimeInstance)
BeforeEnableNewStepper(DkmStepper)

BeforeEnableNewStepper est appelé par le gestionnaire de pas à pas avant l’activation d’une nouvelle exécution pas à pas. Cela permet aux runtimes d’effectuer toute initialisation qui peut être nécessaire, par exemple pour effectuer des évaluations de fonction en préversion.

Contrainte d’emplacement : l’API doit être appelée à partir d’un composant d’analyse (au niveau du composant < 100 000).

(Hérité de DkmRuntimeInstance)
Create(DkmProcess, DkmRuntimeInstanceId, DkmDataItem)

Crée un objet d’instance Runtime à partir d’un moniteur de débogage. Cette méthode doit être appelée à partir du thread d’événement lorsqu’un moniteur de débogage détecte qu’une nouvelle instance du runtime a été chargée (par exemple, lorsque la dll du runtime correspondante se charge dans le processus cible).

Cette méthode enverra un événement RuntimeInstanceLoad.

Contrainte d’emplacement : l’API doit être appelée à partir d’un composant d’analyse (au niveau du composant < 100 000).

Create(DkmProcess, DkmRuntimeInstanceId, DkmRuntimeCapabilities, DkmRuntimeInstance, DkmDataItem)

Crée un objet d’instance Runtime à partir d’un moniteur de débogage. Cette méthode doit être appelée à partir du thread d’événement lorsqu’un moniteur de débogage détecte qu’une nouvelle instance du runtime a été chargée (par exemple, lorsque la dll du runtime correspondante se charge dans le processus cible).

Cette méthode enverra un événement RuntimeInstanceLoad.

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 12 RTM (DkmApiVersion. VS12RTM).

Disassemble(DkmInstructionAddress, UInt32)

Désassemblez une plage d’adresses dans le runtime du programme débogué.

Contrainte d’emplacement : l’API doit être appelée à partir d’un composant IDE (au niveau du composant > 100 000).

Cette API a été introduite dans Visual Studio 12 RTM (DkmApiVersion. VS12RTM).

(Hérité de DkmRuntimeInstance)
FindModulesByName(String)

Cette méthode retourne tous les modules qui correspondent au nom spécifié.

(Hérité de DkmRuntimeInstance)
GetCodePathsInRange(ICorDebugFrame, UInt32, UInt32)

GetCodePathsInRange est appelé pour recevoir des chemins de code dans une plage IL spécifique.

         Contrainte d’emplacement : elle doit uniquement être appelée côté serveur.

         Cette API a été introduite dans Visual Studio 12 RTM (DkmApiVersion. VS12RTM).
(Hérité de DkmRuntimeInstance)
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)
GetInstructionAddress(DkmInstructionAddress, Int32)

Retourne l’adresse de la k instruction relative à une adresse de départ. Pour les jeux d’instructions de longueur constante, il s’agit d’une opération arithmétique simple. Pour les jeux d’instructions de longueur variable, le désassemblage inversé est requis pour obtenir cette adresse.

Contrainte d’emplacement : l’API doit être appelée à partir d’un composant IDE (au niveau du composant > 100 000).

Cette API a été introduite dans Visual Studio 12 RTM (DkmApiVersion. VS12RTM).

(Hérité de DkmRuntimeInstance)
GetManagedHeapSamplers()

GetManagedHeapSamplers énumère les éléments DkmManagedHeapSampler de cet objet DkmRuntimeInstance.

Cette API a été introduite dans Visual Studio 12 RTM (DkmApiVersion. VS12RTM).

(Hérité de DkmRuntimeInstance)
GetManagedHeapWalkers()

GetManagedHeapWalkers énumère les éléments DkmManagedHeapWalker de cet objet DkmRuntimeInstance.

Cette API a été introduite dans Visual Studio 12 RTM (DkmApiVersion. VS12RTM).

(Hérité de DkmRuntimeInstance)
GetModuleInstances()

GetModuleInstances énumère les éléments DkmModuleInstance de cet objet DkmRuntimeInstance.

(Hérité de DkmRuntimeInstance)
GetScriptDocumentTreeNodes()

GetScriptDocumentTreeNodes énumère les éléments DkmScriptDocumentTreeNode de cet objet DkmRuntimeInstance.

(Hérité de DkmRuntimeInstance)
GetSymbolNameForAddress(DkmWorkList, UInt64, DkmCompletionRoutine<DkmGetSymbolNameForAddressAsyncResult>)

Obtient le nom de symbole pour l’adresse spécifiée à l’aide des informations d’exécution au lieu de symboles. Actuellement, il est implémenté pour l’instance du runtime CLR.

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).

Cette API a été introduite dans Visual Studio 16 Update 7 (DkmApiVersion. VS16Update7).

(Hérité de DkmRuntimeInstance)
GetTaskProviders()

GetTaskProviders énumère les éléments DkmTaskProvider de cet objet DkmRuntimeInstance.

(Hérité de DkmRuntimeInstance)
GetThreadDisplayProperties(DkmWorkList, DkmThread, DkmCompletionRoutine<DkmGetThreadDisplayPropertiesAsyncResult>)

Obtient les propriétés d’affichage du thread, y compris le nom complet et la catégorie de 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.

Contrainte d’emplacement : l’API doit être appelée à partir d’un composant IDE (au niveau du composant > 100 000).

(Hérité de DkmRuntimeInstance)
GetThreadName(DkmThread)

Calcule le nom d’un thread.

(Hérité de DkmRuntimeInstance)
GetThreadName(DkmWorkList, DkmThread, DkmCompletionRoutine<DkmGetThreadNameAsyncResult>)

Calcule le nom 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 DkmRuntimeInstance)
NotifyStepComplete(DkmStepper)

NotifyStepComplete est appelé par le gestionnaire de pas à pas sur toutes les instances d’exécution qui ne contrôlent pas une fois l’étape terminée.

Contrainte d’emplacement : l’API doit être appelée à partir d’un composant d’analyse (au niveau du composant < 100 000).

(Hérité de DkmRuntimeInstance)
OnLoadComplete()

Cette méthode est appelée par une analyse de débogage pour déclencher un événement RuntimeInstanceLoadComplete. RuntimeInstanceLoadComplete est actuellement envoyé uniquement pour l’instance du runtime natif, bien que cela puisse changer à l’avenir. L’événement est émis une fois que des objets DkmModuleInstance ont été créés pour l’ensemble initial de modules dans l’instance du Runtime.

Cette méthode peut uniquement être appelée par le composant qui a créé l’objet.

Cette API a été introduite dans Visual Studio 12 Update 2 (DkmApiVersion. VS12Update2).

(Hérité de DkmRuntimeInstance)
OnNewControllingRuntimeInstance(DkmStepper, DkmStepArbitrationReason, DkmRuntimeInstance)

OnNewControllingRuntimeInstance est appelé par le gestionnaire de pas à pas sur toutes les instances de Runtime qui ne contrôlent pas une fois que l’arbitrage de l’étape a sélectionné une nouvelle instance de contrôle d’exécution.

Contrainte d’emplacement : l’API doit être appelée à partir d’un composant d’analyse (au niveau du composant < 100 000).

(Hérité de DkmRuntimeInstance)
OwnsCurrentExecutionLocation(DkmStepper, DkmStepArbitrationReason)

OwnsCurrentExecutionLocation est appelé par le gestionnaire de pas à pas pendant qu’il recherche des analyses pour effectuer une étape. Si l’emplacement actuel dans le programme débogué est compris par cette analyse, il peut retourner true ici pour prendre le contrôle de l’étape.

Contrainte d’emplacement : l’API doit être appelée à partir d’un composant d’analyse (au niveau du composant < 100 000).

(Hérité de DkmRuntimeInstance)
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)
ResolveCPUInstructionAddress(DkmWorkList, UInt64, DkmCompletionRoutine<DkmResolveCPUInstructionAddressAsyncResult>)

Résout un InstructionAddress d’UC en objet DkmInstructionAddress spécifique à l’exécution.

Cette API est actuellement prise en charge uniquement par les objets CLR DkmRuntimeInstance, et l’instance du runtime CLR ne peut actuellement trouver que des adresses d’instruction qui se trouvent dans une méthode qui se trouve actuellement dans la pile des appels de l’un des threads dans le processus cible.

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 : cette API doit généralement être appelée sur le client, mais elle peut être appelée sur le serveur pour traduire des adresses CLR (mais pas compilées en mode natif).

(Hérité de DkmRuntimeInstance)
ResolveCPUInstructionAddress(UInt64, Boolean)

Résout un InstructionAddress d’UC en objet DkmInstructionAddress spécifique à l’exécution.

Cette API est actuellement prise en charge uniquement par les objets CLR DkmRuntimeInstance, et l’instance du runtime CLR ne peut actuellement trouver que des adresses d’instruction qui se trouvent dans une méthode qui se trouve actuellement dans la pile des appels de l’un des threads dans le processus cible.

Contrainte d’emplacement : cette API doit généralement être appelée sur le client, mais elle peut être appelée sur le serveur pour traduire des adresses CLR (mais pas compilées en mode natif).

(Hérité de DkmRuntimeInstance)
SetDataItem<T>(DkmDataCreationDisposition, T)

Placez un nouvel élément dans le conteneur de données.

(Hérité de DkmDataContainer)
SetRegisterValue(DkmStackWalkFrame, Int32, ReadOnlyCollection<Byte>)

Définit la valeur du Registre dans le contexte du thread. Les sous-registres qui sont constitués de registres plus volumineux sont pris en charge.

(Hérité de DkmRuntimeInstance)
Step(DkmStepper, DkmStepArbitrationReason)

L’étape est appelée par le gestionnaire de pas à pas une fois qu’elle a déterminé que ce moniteur est le moniteur approprié pour effectuer cette étape.

Contrainte d’emplacement : l’API doit être appelée à partir d’un composant d’analyse (au niveau du composant < 100 000).

(Hérité de DkmRuntimeInstance)
StepControlRequested(DkmStepper, DkmStepArbitrationReason, DkmRuntimeInstance)

StepControlRequested est appelé par le gestionnaire de pas à pas lorsqu’une instance d’exécution sans contrôle détecte que le thread a atteint son exécution. Si l’instance de Runtime de contrôle actuelle peut arrêter l’exécution pas à pas, elle doit affecter à la valeur true. Le contrôle réel n’est pas donné tant que le runtime demandeur n’a pas appelé DkmStepper. TakeStepControl. Ce processus en deux parties permet aux appelants de demander le contrôle de plusieurs exécutions pas à pas en même temps.

Contrainte d’emplacement : l’API doit être appelée à partir d’un composant d’analyse (au niveau du composant < 100 000).

(Hérité de DkmRuntimeInstance)
StopStep(DkmStepper)

StopStep est appelé par le gestionnaire de pas à pas lorsque le processus est en cours de poursuite pour effacer l’état d’exécution restant d’un pas à pas.

Contrainte d’emplacement : l’API doit être appelée à partir d’un composant d’analyse (au niveau du composant < 100 000).

(Hérité de DkmRuntimeInstance)
TakeStepControl(DkmStepper, Boolean, DkmStepArbitrationReason, DkmRuntimeInstance)

TakeStepControl est appelé par le gestionnaire de pas à pas lorsqu’une instance d’exécution sans contrôle détecte que le thread a atteint son exécution. Le gestionnaire de pas à pas transfère l’appel à l’instance du runtime de contrôle actuelle. L’instance d’exécution qui demande le contrôle doit d’abord appeler StepControlRequested sur toutes les exécutions pas à pas. Si elles ont toutes la valeur true, l’instance de Runtime doit ensuite appeler cette méthode sur chaque pas à pas dont elle prend le contrôle.

Contrainte d’emplacement : l’API doit être appelée à partir d’un composant d’analyse (au niveau du composant < 100 000).

(Hérité de DkmRuntimeInstance)
Unload()

RuntimeInstanceUnload est envoyé par le répartiteur lorsque DkmRuntimeInstance :: 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 DkmRuntimeInstance)

S’applique à