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