Condividi tramite


Interfaccia ICorDebugEval

Fornisce metodi per consentire al debugger di eseguire codice nel contesto del codice in fase di debug.

Metodi

Metodo

Oggetto di descrizione

Metodo ICorDebugEval::Abort

Interrompe il calcolo attualmente eseguito dall'oggetto ICorDebugEval.

Metodo ICorDebugEval::CallFunction

Configura una chiamata alla funzione specificata. Obsoleto in .NET Framework versione 2.0. Utilizzare invece ICorDebugEval2::CallParameterizedFunction.

Metodo ICorDebugEval::CreateValue

Ottiene un puntatore a interfaccia a un oggetto Interfaccia ICorDebugValue del tipo specificato, con valore iniziale zero o null. Obsoleto in .NET Framework versione 2.0. Utilizzare invece ICorDebugEval2::CreateValueForType.

Metodo ICorDebugEval::GetResult

Ottiene un puntatore a interfaccia a ICorDebugValue che contiene i risultati della valutazione.

Metodo ICorDebugEval::GetThread

Ottiene un puntatore a interfaccia a ICorDebugThread, in cui la valutazione è in esecuzione o verrà eseguita.

Metodo ICorDebugEval::IsActive

Ottiene un valore che indica se l'oggetto ICorDebugEval è attualmente in esecuzione.

Metodo ICorDebugEval::NewArray

Alloca una nuova matrice con le dimensioni e il tipo di elemento specificati. Obsoleto in .NET Framework versione 2.0. Utilizzare invece ICorDebugEval2::NewParameterizedArray.

Metodo ICorDebugEval::NewObject

Alloca una nuova istanza dell'oggetto e chiama il metodo costruttore specificato. Obsoleto in .NET Framework versione 2.0. Utilizzare invece ICorDebugEval2::NewParameterizedObject.

Metodo ICorDebugEval::NewObjectNoConstructor

Alloca una nuova istanza dell'oggetto del tipo specificato, senza tentare di chiamare un metodo costruttore. Obsoleto in .NET Framework versione 2.0. Utilizzare invece ICorDebugEval2::NewParameterizedObjectNoConstructor.

Metodo ICorDebugEval::NewString

Alloca un nuovo oggetto stringa con il contenuto specificato.

Note

Viene creato un oggetto ICorDebugEval nel contesto di un thread specifico utilizzato per eseguire le valutazioni. Tutti gli oggetti e i tipi utilizzati in una determinata valutazione devono risiedere all'interno dello stesso dominio applicazione. Tale dominio non deve necessariamente corrispondere al dominio applicazione corrente del thread. Le valutazioni possono essere annidate.

Le operazioni della valutazione non vengono completate finché il debugger non chiama ICorDebugController::Continue e riceve quindi un callback di ICorDebugManagedCallback::EvalComplete. Se è necessario utilizzare la funzionalità di valutazione senza consentire l'esecuzione di altri thread, sospendere i thread mediante ICorDebugController::SetAllThreadsDebugState o ICorDebugController::Stop prima di chiamare ICorDebugController::Continue.

Poiché è in esecuzione codice utente quando è in corso la valutazione, può verificarsi qualsiasi evento di debug, inclusi punti di interruzione e caricamenti di classi. Il debugger riceverà come al solito i callback per questi eventi. Lo stato della valutazione sarà visto come parte della verifica del normale stato del programma. La catena dello stack sarà una catena CHAIN_FUNC_EVAL (vedere l'enumerazione CorDebugStepReason e il metodo ICorDebugChain::GetReason). L'API del debugger completa continuerà a funzionare normalmente.

Se si verifica una situazione di deadlock o con cicli infiniti, il codice utente non potrà mai essere completato. In tal caso, è necessario chiamare ICorDebugEval::Abort prima di riprendere l'esecuzione del programma.

NotaNota

Questa interfaccia non supporta la ricezione di chiamate in modalità remota, siano esse tra più computer o processi.

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: CorDebug.idl, CorDebug.h

Libreria: CorGuids.lib

Versioni di .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

Vedere anche

Riferimenti

Interfaccia ICorDebugEval2

Interfaccia ICorDebugThread

Interfaccia ICorDebugValue

Altre risorse

Interfacce di debug