Partager via


ICorDebugEval

Mise à jour : novembre 2007

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.

interface ICorDebugEval : IUnknown {
        
    HRESULT Abort ();
        
    HRESULT CallFunction (
        [in] ICorDebugFunction  *pFunction,
        [in] ULONG32            nArgs,
        [in, size_is(nArgs)] ICorDebugValue *ppArgs[]
    );
        
    HRESULT CreateValue (
        [in] CorElementType     elementType,
        [in] ICorDebugClass     *pElementClass,
        [out] ICorDebugValue    **ppValue
    );
        
    HRESULT GetResult (
        [out] ICorDebugValue    **ppResult
    );
        
    HRESULT GetThread (
        [out] ICorDebugThread   **ppThread
    );
        
    HRESULT IsActive (
        [out] BOOL              *pbActive
    );
        
    HRESULT NewArray (
        [in] CorElementType     elementType,
        [in] ICorDebugClass     *pElementClass,
        [in] ULONG32            rank,
        [in, size_is(rank)] ULONG32 dims[],
        [in, size_is(rank)] ULONG32 lowBounds[]
    );
        
    HRESULT NewObject (
        [in] ICorDebugFunction  *pConstructor,
        [in] ULONG32            nArgs,
        [in, size_is(nArgs)] ICorDebugValue *ppArgs[]
    );
        
    HRESULT NewObjectNoConstructor (
        [in] ICorDebugClass     *pClass
    );
        
    HRESULT NewString (
        [in] LPCWSTR            string
    );
        
};

Méthodes

Méthode

Description

ICorDebugEval::Abort, méthode

Abandonne le calcul que cet objet ICorDebugEval exécute actuellement.

ICorDebugEval::CallFunction, méthode

Paramètre un appel à la fonction spécifiée. (Obsolète dans la version 2.0 du .NET Framework ; utilisez à la place ICorDebugEval2::CallParameterizedFunction.)

ICorDebugEval::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 à la place ICorDebugEval2::CreateValueForType.)

ICorDebugEval::GetResult, méthode

Obtient un pointeur d'interface vers ICorDebugValue qui contient les résultats de l'évaluation.

ICorDebugEval::GetThread, méthode

Obtient un pointeur d'interface vers ICorDebugThread où cette évaluation est en cours d'exécution ou s'exécutera.

ICorDebugEval::IsActive, méthode

Obtient une valeur qui indique si cet objet ICorDebugEval est en cours d'exécution.

ICorDebugEval::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 à la place ICorDebugEval2::NewParameterizedArray.)

ICorDebugEval::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 à la place ICorDebugEval2::NewParameterizedObject.)

ICorDebugEval::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 à la place ICorDebugEval2::NewParameterizedObjectNoConstructor.)

ICorDebugEval::NewString, méthode

Alloue un nouvel objet chaîne avec le contenu spécifié.

Notes

Un objet ICorDebugEval est créé dans le contexte d'un thread spécifique qui est utilisé pour exécuter les évaluations. Tous les objets et les 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 le domaine d'application en cours du thread. Les évaluations peuvent être imbriquées.

Les opérations de l'évaluation ne se terminent pas tant que le débogueur n'a pas appelé ICorDebugController::Continue, puis reçu un rappel ICorDebugManagedCallback::EvalComplete. Si vous devez utiliser les fonctionnalités de l'évaluation sans permettre à d'autres threads de s'exécuter, suspendez les threads en utilisant ICorDebugController::SetAllThreadsDebugState ou ICorDebugController::Stop avant d'appeler ICorDebugController::Continue.

Étant donné que le code utilisateur s'exécute lorsque l'évaluation est en cours, des événements de débogage peuvent se produire, notamment les chargements de classe et les points d'arrêt. Le débogueur recevra normalement des rappels pour ces événements. L'état de l'évaluation sera affiché dans le cadre de l'inspection de l'état du programme normal. La chaîne de la pile sera une chaîne CHAIN_FUNC_EVAL (consultez l'énumération CorDebugStepReason et la méthode ICorDebugChain::GetReason). L'API de débogueur complète continuera à fonctionner normalement.

Si une situation de blocage ou de boucles sans fin survient, il est possible que le code utilisateur ne se termine jamais. Dans ce cas, vous devez appeler ICorDebugEval::Abort avant de reprendre le programme.

Configuration requise

Plateformes : consultez Configuration requise du .NET Framework.

En-tête : CorDebug.idl

Bibliothèque : CorGuids.lib

Versions du .NET Framework : 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

Voir aussi

Référence

ICorDebugEval2

ICorDebugThread

ICorDebugValue

Autres ressources

Interfaces de débogage