Freigeben über


ICorDebugEval-Schnittstelle

Stellt Methoden bereit, mit denen der Debugger Code innerhalb des Kontexts des gedebuggten Codes ausführen kann.

Methoden

Methode BESCHREIBUNG
Abort-Methode Bricht die Berechnung ab, die dieses ICorDebugEval-Objekt derzeit ausführt.
CallFunction-Methode Richtet einen Aufruf an die angegebene Funktion ein. (Veraltet in .NET Framework Version 2.0. Verwenden Sie stattdessen ICorDebugEval2::CallParameterizedFunction.)
CreateValue-Methode Ruft einen Schnittstellenzeiger auf ein „ICorDebugValue“-Objekt des angegebenen Typs mit einem Anfangswert von 0 oder NULL ab. (Veraltet in .NET Framework 2.0. Verwenden Sie stattdessen ICorDebugEval2::CreateValueForType.)
GetResult-Methode Ruft einen Schnittstellenzeiger auf einen ICorDebugValue ab, der die Ergebnisse der Auswertung enthält.
GetThread-Methode Ruft einen Schnittstellenzeiger auf „ICorDebugThread“ ab, in dem diese Auswertung ausgeführt wird.
IsActive-Methode Ruft einen Wert ab, der angibt, ob dieses ICorDebugEval-Objekt derzeit ausgeführt wird.
NewArray-Methode Ordnet ein neues Array des angegebenen Elementtyps und der angegebenen Dimensionen zu. (Veraltet in .NET Framework 2.0; verwenden Sie stattdessen ICorDebugEval2::NewParameterizedArray.)
NewObject-Methode Weist eine neue Objektinstanz zu und ruft die angegebene Konstruktormethode auf. (Veraltet in .NET Framework 2.0; verwenden Sie stattdessen ICorDebugEval2::NewParameterizedObject.)
NewObjectNoConstructor-Methode Ordnet eine neue Objektinstanz des angegebenen Typs zu, ohne zu versuchen, eine Konstruktormethode aufzurufen. (Veraltet in .NET Framework 2.0; verwenden Sie stattdessen ICorDebugEval2::NewParameterizedObjectNoConstructor.)
NewString-Methode Weist ein neues Zeichenfolgenobjekt mit den angegebenen Inhalten zu.

Hinweise

Ein ICorDebugEval-Objekt wird im Kontext eines bestimmten Threads erstellt, der zum Ausführen der Auswertungen verwendet wird. Alle Objekte und Typen, die in einer bestimmten Auswertung verwendet werden, müssen sich in derselben Anwendungsdomäne befinden. Diese Anwendungsdomäne muss nicht mit der aktuellen Anwendungsdomäne des Threads identisch sein. Auswertungen können geschachtelt werden.

Die Vorgänge der Auswertung werden erst abgeschlossen, wenn der Debugger ICorDebugController::Continue aufruft und dann einen ICorDebugManagedCallback::EvalComplete-Rückruf empfängt. Wenn Sie die Auswertungsfunktion verwenden möchten, ohne die Ausführung anderer Threads zuzulassen, halten Sie die Threads entweder mit ICorDebugController::SetAllThreadsDebugState oder mit ICorDebugController::Stop an, bevor Sie ICorDebugController::Continue aufrufen.

Da während der Auswertung Benutzercode ausgeführt wird, können Debugereignisse auftreten, einschließlich Klassenladevorgänge und Breakpoints. Der Debugger empfängt wie gewohnt Rückrufe für diese Ereignisse. Der Zustand der Auswertung wird als Teil der Überprüfung des normalen Programmzustands betrachtet. Die Stapelkette ist eine CHAIN_FUNC_EVAL-Kette (siehe die „CorDebugStepReason“-Enumeration und die ICorDebugChain::GetReason-Methode). Die vollständige Debugger-API wird weiterhin wie gewohnt ausgeführt.

Wenn eine Deadlock- oder Endlosschleifensituation auftritt, wird der Benutzercode möglicherweise nie vollständig abgeschlossen. In einem solchen Fall müssen Sie ICorDebugEval::Abort aufrufen, bevor Sie das Programm fortsetzen.

Hinweis

Diese Schnittstelle kann weder computerübergreifend noch prozessübergreifend remote aufgerufen werden.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Header: CorDebug.idl, CorDebug.h

Bibliothek: CorGuids.lib

.NET Framework-Versionen: seit Version 1.0 verfügbar

Siehe auch