Interfaccia ICorDebugEval
Fornisce metodi per consentire al debugger di eseguire codice nel contesto del codice in fase di debug.
Metodi
Metodo | Descrizione |
---|---|
Metodo Abort | Interrompe l'esecuzione del calcolo di questo ICorDebugEval oggetto. |
Metodo CallFunction | Configura una chiamata alla funzione specificata. Obsoleto in .NET Framework versione 2.0; usare invece ICorDebugEval2::CallParameterizedFunction . |
Metodo CreateValue | Ottiene un puntatore dell'interfaccia a un oggetto "ICorDebugValue" del tipo specificato, con un valore iniziale pari a zero o null. Obsoleto in .NET Framework 2.0; usare invece ICorDebugEval2::CreateValueForType . |
Metodo GetResult | Ottiene un puntatore dell'interfaccia a un ICorDebugValue oggetto contenente i risultati della valutazione. |
Metodo GetThread | Ottiene un puntatore dell'interfaccia all'oggetto "ICorDebugThread" in cui questa valutazione viene eseguita o verrà eseguita. |
Metodo IsActive | Ottiene un valore che indica se l'oggetto ICorDebugEval è attualmente in esecuzione. |
Metodo NewArray | Alloca una nuova matrice del tipo e delle dimensioni dell'elemento specificati. Obsoleto in .NET Framework 2.0; usare invece ICorDebugEval2::NewParameterizedArray . |
Metodo NewObject | Alloca una nuova istanza di oggetto e chiama il metodo del costruttore specificato. Obsoleto in .NET Framework 2.0; usare invece ICorDebugEval2::NewParameterizedObject . |
Metodo NewObjectNoConstructor | Alloca una nuova istanza dell'oggetto del tipo specificato, senza tentare di chiamare un metodo del costruttore. Obsoleto in .NET Framework 2.0; usare invece ICorDebugEval2::NewParameterizedObjectNoConstructor . |
Metodo NewString | Alloca un nuovo oggetto stringa con il contenuto specificato. |
Commenti
Un ICorDebugEval
oggetto viene creato nel contesto di un thread specifico usato per eseguire le valutazioni. Tutti gli oggetti e i tipi usati in una determinata valutazione devono risiedere nello stesso dominio dell'applicazione. Il dominio dell'applicazione non deve essere uguale al dominio dell'applicazione corrente del thread. Le valutazioni possono essere annidate.
Le operazioni della valutazione non vengono completate finché il debugger chiama ICorDebugController::Continue e quindi riceve un callback ICorDebugManagedCallback::EvalComplete callback . Se è necessario usare la funzionalità di valutazione senza consentire l'esecuzione di altri thread, sospendere i thread usando ICorDebugController::SetAllThreadsDebugState o ICorDebugController::Stop prima di chiamare ICorDebugController::Continue.
Poiché il codice utente viene eseguito quando la valutazione è in corso, tutti gli eventi di debug possono verificarsi, inclusi i carichi di classe e i punti di interruzione. Il debugger riceverà callback, come di consueto, per questi eventi. Lo stato della valutazione verrà considerato come parte dell'ispezione dello stato normale del programma. La catena di stack sarà una CHAIN_FUNC_EVAL
catena (vedere l'enumerazione "CorDebugStepReason" e il metodo ICorDebugChain::GetReason ). L'API del debugger completa continuerà a funzionare come normale.
Se si verifica una situazione di deadlocking o infinito, il codice utente potrebbe non completare mai. In tal caso, è necessario chiamare ICorDebugEval::Abort prima di riprendere il programma.
Nota
Questa interfaccia non supporta la chiamata in modalità remota, tra computer o tra processi.
Requisiti
Piattaforme: vedere Requisiti di sistema di .NET Framework.
Intestazione: CorDebug.idl, CorDebug.h
Libreria: CorGuids.lib
Versioni di .NET Framework: Disponibile da 1.0