Freigeben über


ICorDebugEval-Schnittstelle

Stellt Methoden bereit, mit denen der Debugger Code im Kontext des debuggten Codes ausführen kann.

Methodik

Methode Description
Abort-Methode Bricht die Berechnung ab, die dieses ICorDebugEval Objekt derzeit ausführt.
CallFunction-Methode Richtet einen Aufruf der angegebenen Funktion ein. (Veraltet; verwenden Sie stattdessen ICorDebugEval2::CallParameterizedFunction .)
CreateValue-Methode Ruft einen Schnittstellenzeiger auf ein "ICorDebugValue"-Objekt des angegebenen Typs mit einem Anfangswert von Null oder Null ab. (Veraltet; verwenden Sie stattdessen ICorDebugEval2::CreateValueForType .)
GetResult-Methode Ruft einen Schnittstellenzeiger auf eine ICorDebugValue , die die Ergebnisse der Auswertung enthält.
GetThread-Methode Ruft einen Schnittstellenzeiger auf das "ICorDebugThread"-Element ab, in dem diese Auswertung ausgeführt wird oder ausgeführt wird.
IsActive-Methode Ruft einen Wert ab, der angibt, ob dieses ICorDebugEval Objekt zurzeit ausgeführt wird.
NewArray-Methode Weist ein neues Array des angegebenen Elementtyps und der angegebenen Dimensionen zu. (Veraltet; verwenden Sie stattdessen ICorDebugEval2::NewParameterizedArray .)
NewObject-Methode Weist eine neue Objektinstanz zu und ruft die angegebene Konstruktormethode auf. (Veraltet; verwenden Sie stattdessen ICorDebugEval2::NewParameterizedObject .)
NewObjectNoConstructor-Methode Weist eine neue Objektinstanz des angegebenen Typs zu, ohne eine Konstruktormethode aufzurufen. (Veraltet; verwenden Sie stattdessen ICorDebugEval2::NewParameterizedObjectNoConstructor .)
NewString-Methode Weist ein neues Zeichenfolgenobjekt mit dem angegebenen Inhalt zu.

Bemerkungen

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 übereinstimmen. 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 Auswertungsfunktionalität verwenden müssen, ohne die Ausführung anderer Threads zuzulassen, setzen Sie die Threads entweder mit ICorDebugController::SetAllThreadsDebugState oder ICorDebugController::Stop vor dem Aufrufen von ICorDebugController::Continue.

Da Benutzercode ausgeführt wird, wenn die Auswertung ausgeführt wird, können alle Debugereignisse auftreten, einschließlich Klassenladevorgänge und Haltepunkte. Der Debugger empfängt Rückrufe wie gewohnt für diese Ereignisse. Der Zustand der Bewertung wird als Teil der Inspektion des normalen Programmzustands betrachtet. Die Stapelkette ist eine CHAIN_FUNC_EVAL Kette (siehe die "CorDebugStepReason"-Aufzählung und die ICorDebugChain::GetReason-Methode ). Die vollständige Debugger-API wird weiterhin normal ausgeführt.

Wenn eine inaktive oder unendliche Schleifensituation auftritt, kann der Benutzercode nie abgeschlossen werden. In diesem Fall müssen Sie ICorDebugEval::Abort aufrufen, bevor Sie das Programm fortsetzen.

Hinweis

Diese Schnittstelle unterstützt nicht die Remote-Aufrufe, entweder computerübergreifend oder prozessübergreifend.

Anforderungen

Plattformen: Siehe .NET unterstützte Betriebssysteme.

Kopfball: CorDebug.idl, CorDebug.h

Bibliothek: CorGuids.lib

.NET-Versionen: Verfügbar seit .NET Framework 1.0