Interfaz ICorDebugEvalICorDebugEval Interface

Proporciona métodos que permiten al depurador ejecutar código en el contexto del código que se está depurando.Provides methods to enable the debugger to execute code within the context of the code being debugged.

MétodosMethods

MétodoMethod DescripciónDescription
Abort (método)Abort Method Anula el cálculo que este objeto ICorDebugEval está realizando actualmente.Aborts the computation this ICorDebugEval object is currently performing.
CallFunction (método)CallFunction Method Configura una llamada a la función especificada.Sets up a call to the specified function. (Obsoleto en la .NET Framework versión 2,0; use ICorDebugEval2:: CallParameterizedFunction ( en su lugar).(Obsolete in the .NET Framework version 2.0; use ICorDebugEval2::CallParameterizedFunction instead.)
CreateValue (método)CreateValue Method Obtiene un puntero de interfaz a un objeto "ICorDebugValue" del tipo especificado, con un valor inicial de cero o null.Gets an interface pointer to an "ICorDebugValue" object of the specified type, with an initial value of zero or null. (Obsoleto en el .NET Framework 2,0; use ICorDebugEval2:: createvaluefortype ( en su lugar).(Obsolete in the .NET Framework 2.0; use ICorDebugEval2::CreateValueForType instead.)
GetResult (método)GetResult Method Obtiene un puntero de interfaz a un ICorDebugValue que contiene los resultados de la evaluación.Gets an interface pointer to an ICorDebugValue that contains the results of the evaluation.
GetThread (método)GetThread Method Obtiene un puntero de interfaz a la expresión "ICorDebugThread" en la que se está ejecutando o se ejecutará esta evaluación.Gets an interface pointer to the "ICorDebugThread" where this evaluation is executing or will execute.
IsActive (método)IsActive Method Obtiene un valor que indica si este objeto ICorDebugEval se está ejecutando actualmente.Gets a value that indicates whether this ICorDebugEval object is currently executing.
NewArray (método)NewArray Method Asigna una nueva matriz del tipo de elemento y las dimensiones especificadas.Allocates a new array of the specified element type and dimensions. (Obsoleto en el .NET Framework 2,0; use ICorDebugEval2:: NewParameterizedArray ( en su lugar).(Obsolete in the .NET Framework 2.0; use ICorDebugEval2::NewParameterizedArray instead.)
NewObject (método)NewObject Method Asigna una nueva instancia de objeto y llama al método de constructor especificado.Allocates a new object instance and calls the specified constructor method. (Obsoleto en el .NET Framework 2,0; use ICorDebugEval2:: NewParameterizedObject ( en su lugar).(Obsolete in the .NET Framework 2.0; use ICorDebugEval2::NewParameterizedObject instead.)
NewObjectNoConstructor (método)NewObjectNoConstructor Method Asigna una nueva instancia de objeto del tipo especificado, sin intentar llamar a un método de constructor.Allocates a new object instance of the specified type, without attempting to call a constructor method. (Obsoleto en el .NET Framework 2,0; use ICorDebugEval2:: newparameterizedobjectnoconstructor ( en su lugar).(Obsolete in the .NET Framework 2.0; use ICorDebugEval2::NewParameterizedObjectNoConstructor instead.)
NewString (método)NewString Method Asigna un nuevo objeto de cadena con el contenido especificado.Allocates a new string object with the specified contents.

NotasRemarks

Se crea un objeto ICorDebugEval en el contexto de un subproceso específico que se utiliza para realizar las evaluaciones.An ICorDebugEval object is created in the context of a specific thread that is used to perform the evaluations. Todos los objetos y tipos utilizados en una evaluación determinada deben residir en el mismo dominio de aplicación.All objects and types used in a given evaluation must reside within the same application domain. Dicho dominio de aplicación no debe ser el mismo que el dominio de aplicación actual del subproceso.That application domain need not be the same as the current application domain of the thread. Las evaluaciones se pueden anidar.Evaluations can be nested.

Las operaciones de la evaluación no se completan hasta que el depurador llama a ICorDebugController:: Continuey, a continuación, recibe una devolución de llamada ICorDebugManagedCallback:: evalcomplete ( .The evaluation's operations do not complete until the debugger calls ICorDebugController::Continue, and then receives an ICorDebugManagedCallback::EvalComplete callback. Si necesita usar la funcionalidad de evaluación sin permitir que se ejecuten otros subprocesos, suspenda los subprocesos mediante ICorDebugController:: setallthreadsdebugstate ( o ICorDebugController:: Stop antes de llamar a ICorDebugController:: Continue.If you need to use the evaluation functionality without allowing other threads to run, suspend the threads by using either ICorDebugController::SetAllThreadsDebugState or ICorDebugController::Stop before calling ICorDebugController::Continue.

Dado que el código de usuario se está ejecutando cuando la evaluación está en curso, pueden producirse los eventos de depuración, incluidas las cargas de clases y los puntos de interrupción.Because user code is running when the evaluation is in progress, any debug events can occur, including class loads and breakpoints. El depurador recibirá devoluciones de llamada, como es habitual, para estos eventos.The debugger will receive callbacks, as normal, for these events. El estado de la evaluación se verá como parte de la inspección del estado normal del programa.The state of the evaluation will be seen as part of the inspection of the normal program state. La cadena de pila será una cadena de CHAIN_FUNC_EVAL (vea la enumeración "CorDebugStepReason (" y el método ICorDebugChain:: GetReason ( ).The stack chain will be a CHAIN_FUNC_EVAL chain (see the "CorDebugStepReason" enumeration and the ICorDebugChain::GetReason method). La API de depurador completa seguirá funcionando de la manera habitual.The full debugger API will continue to operate as normal.

Si se produce una situación de bucle indefinido o infinito, el código de usuario nunca puede completarse.If a deadlocked or infinite looping situation arises, the user code may never complete. En tal caso, debe llamar a ICorDebugEval:: ABORT antes de reanudar el programa.In such a case, you must call ICorDebugEval::Abort before resuming the program.

Nota

Esta interfaz no admite que se la llame de forma remota, ya sea entre procesos o entre equipos.This interface does not support being called remotely, either cross-machine or cross-process.

Requisitos deRequirements

Plataformas: Vea Requisitos de sistema.Platforms: See System Requirements.

Encabezado: CorDebug.idl, CorDebug.hHeader: CorDebug.idl, CorDebug.h

Biblioteca: CorGuids.libLibrary: CorGuids.lib

.NET Framework versiones: Disponible desde la versión 1.0Available since 1.0.NET Framework Versions: Disponible desde la versión 1.0Available since 1.0

Vea tambiénSee also