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