ICorDebugEval, interface
Fournit des méthodes pour permettre au débogueur d'exécuter le code à l'intérieur du contexte du code en cours de débogage.
Méthodes
Méthode | Description |
---|---|
Abort, méthode | Annule le calcul de cet objet ICorDebugEval est en cours d’exécution. |
CallFunction, méthode | Configure un appel à la fonction spécifiée. (Obsolète dans .NET Framework 2.0 ; utilisez ICorDebugEval2::CallParameterizedFunction à la place.) |
CreateValue, méthode | Obtient un pointeur d’interface vers un objet « ICorDebugValue » du type spécifié, avec une valeur initiale de zéro ou null. (Obsolète dans .NET Framework 2.0 ; utilisez ICorDebugEval2::CreateValueForType à la place.) |
GetResult, méthode | Obtient un pointeur d’interface vers un ICorDebugValue qui contient les résultats de l’évaluation. |
GetThread, méthode | Obtient un pointeur d’interface vers « ICorDebugThread » où cette évaluation s’exécute ou s’exécutera. |
IsActive, méthode | Obtient une valeur qui indique si cet objet ICorDebugEval est en cours d’exécution. |
NewArray, méthode | Alloue un nouveau tableau du type d’élément et des dimensions spécifiés. (Obsolète dans .NET Framework 2.0 ; utilisez ICorDebugEval2::NewParameterizedArray à la place.) |
NewObject, méthode | Alloue une nouvelle instance d’objet et appelle la méthode de constructeur spécifiée. (Obsolète dans .NET Framework 2.0 ; utilisez ICorDebugEval2::NewParameterizedObject à la place.) |
NewObjectNoConstructor, méthode | Alloue une nouvelle instance d’objet du type spécifié, sans tenter d’appeler une méthode de constructeur. (Obsolète dans .NET Framework 2.0 ; utilisez ICorDebugEval2::NewParameterizedObjectNoConstructor à la place.) |
NewString, méthode | Alloue un nouvel objet de chaîne avec le contenu spécifié. |
Notes
Un objet ICorDebugEval
est créé dans le contexte d’un thread spécifique utilisé pour effectuer les évaluations. Tous les objets et types utilisés dans une évaluation donnée doivent résider dans le même domaine d’application. Ce domaine d’application n’a pas besoin d’être identique au domaine d’application actuel du thread. Les évaluations peuvent être imbriquées.
Les opérations de l’évaluation ne se terminent pas tant que le débogueur appelle ICorDebugController::Continue, puis reçoit un rappel ICorDebugManagedCallback::EvalComplete. Si vous devez utiliser la fonctionnalité d’évaluation sans autoriser d’autres threads à exécuter, suspendez les threads à l’aide de ICorDebugController::SetAllThreadsDebugState ou de ICorDebugController::Stop avant d’appeler ICorDebugController::Continue.
Comme le code utilisateur est en cours d’exécution lorsque l’évaluation est en cours, tous les événements de débogage peuvent se produire, y compris les chargements de classes et les points d’arrêt. Le débogueur recevra des rappels, comme d’habitude, pour ces événements. L’état de l’évaluation sera considéré comme faisant partie de l’inspection de l’état normal du programme. La chaîne de pile sera une chaîne CHAIN_FUNC_EVAL
(voir l’énumération « CorDebugStepReason » et la méthode ICorDebugChain::GetReason). L’API de débogueur complète continuera à fonctionner normalement.
Si une situation d’interblocage ou de boucle infinie se produit, le code utilisateur peut ne jamais se terminer. Dans ce cas, vous devez appeler ICorDebugEval::Abort avant de reprendre le programme.
Notes
Cette interface ne prend pas en charge l'appel à distance, que ce soit entre ordinateurs ou entre processus.
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