Udostępnij za pośrednictwem


ICorDebugEval, interfejs

Dostarcza metody umożliwiające debugerowi wykonywanie kodu w kontekście debugowanego kodu.

Metody

Metoda Opis
Abort — Metoda Przerywa obliczanie, które jest obecnie wykonywane przez ten ICorDebugEval obiekt.
CallFunction, metoda Konfiguruje wywołanie określonej funkcji. (Przestarzałe w .NET Framework w wersji 2.0; zamiast tego użyj funkcji ICorDebugEval2::CallParameterizedFunction).
CreateValue, metoda Pobiera wskaźnik interfejsu do obiektu "ICorDebugValue" określonego typu z początkową wartością zero lub null. (Przestarzałe w .NET Framework 2.0; zamiast tego użyj elementu ICorDebugEval2::CreateValueForType).
GetResult, metoda Pobiera wskaźnik interfejsu do elementu ICorDebugValue zawierającego wyniki oceny.
GetThread, metoda Pobiera wskaźnik interfejsu do elementu "ICorDebugThread", w którym ta ocena jest wykonywana lub wykonywana.
IsActive — Metoda Pobiera wartość wskazującą, czy ten ICorDebugEval obiekt jest obecnie wykonywany.
NewArray, metoda Przydziela nową tablicę określonego typu elementu i wymiarów. (Przestarzałe w .NET Framework 2.0; zamiast tego użyj elementu ICorDebugEval2::NewParameterizedArray).
NewObject, metoda Przydziela nowe wystąpienie obiektu i wywołuje określoną metodę konstruktora. (Przestarzałe w .NET Framework 2.0; zamiast tego użyj elementu ICorDebugEval2::NewParameterizedObject).
NewObjectNoConstructor, metoda Przydziela nowe wystąpienie obiektu określonego typu bez próby wywołania metody konstruktora. (Przestarzałe w .NET Framework 2.0; zamiast tego użyj elementu ICorDebugEval2::NewParameterizedObjectNoConstructor).
NewString, metoda Przydziela nowy obiekt ciągu z określoną zawartością.

Uwagi

ICorDebugEval Obiekt jest tworzony w kontekście określonego wątku używanego do przeprowadzania ocen. Wszystkie obiekty i typy używane w danej ocenie muszą znajdować się w tej samej domenie aplikacji. Ta domena aplikacji nie musi być taka sama jak bieżąca domena aplikacji wątku. Oceny można zagnieżdżać.

Operacje oceny nie zostaną ukończone, dopóki debuger nie wywoła wywołania wywołania ICorDebugController::Continue, a następnie otrzyma wywołanie zwrotne ICorDebugManagedCallback::EvalComplete . Jeśli musisz użyć funkcji oceny bez zezwalania innym wątkom na uruchamianie, wstrzymywanie wątków przy użyciu elementu ICorDebugController::SetAllThreadsDebugState lub ICorDebugController::Stop przed wywołaniem elementu ICorDebugController::Continue.

Ponieważ kod użytkownika jest uruchamiany, gdy ocena jest w toku, mogą wystąpić wszystkie zdarzenia debugowania, w tym obciążenia klas i punkty przerwania. Debuger otrzyma wywołania zwrotne, jak zwykle, dla tych zdarzeń. Stan oceny będzie postrzegany jako część kontroli stanu normalnego programu. Łańcuch stosu będzie łańcuchem CHAIN_FUNC_EVAL (zobacz wyliczenie " CorDebugStepReason" i metodę ICorDebugChain::GetReason ). Pełny interfejs API debugera będzie nadal działać normalnie.

Jeśli pojawi się sytuacja zakleszczenia lub nieskończona pętla, kod użytkownika może nigdy nie zostać ukończony. W takim przypadku należy wywołać metodę ICorDebugEval::Abort przed wznowieniem programu.

Uwaga

Ten interfejs nie obsługuje wywoływanego zdalnie, między maszynami lub między procesami.

Wymagania

Platformy: Zobacz Wymagania systemowe.

Nagłówka: CorDebug.idl, CorDebug.h

Biblioteki: CorGuids.lib

wersje .NET Framework: dostępne od wersji 1.0

Zobacz też