Przykładowa implementacja ustawień lokalnych
Ważne
W programie Visual Studio 2015 ten sposób implementowania ewaluatorów wyrażeń jest przestarzały. Aby uzyskać informacje na temat implementowania ewaluatorów wyrażeń CLR, zobacz clR expression evaluators and Managed expression evaluator sample (Przykład ewaluatora wyrażeń zarządzanych).
Poniżej przedstawiono omówienie sposobu pobierania ustawień lokalnych przez program Visual Studio dla metody z ewaluatora wyrażeń (EE):
Program Visual Studio wywołuje właściwość GetDebugProperty aparatu debugowania, aby uzyskać obiekt IDebugProperty2 reprezentujący wszystkie właściwości ramki stosu, w tym ustawienia lokalne.
IDebugStackFrame2::GetDebugProperty
wywołuje metodę GetMethodProperty , aby uzyskać obiekt opisujący metodę, w której wystąpił punkt przerwania. De dostarcza dostawcę symboli (IDebugSymbolProvider), adres (IDebugAddress) i binder (IDebugBinder).IDebugExpressionEvaluator::GetMethodProperty
wywołuje metodę GetContainerField z podanymIDebugAddress
obiektem, aby uzyskać obiekt IDebugContainerField reprezentujący metodę zawierającą określony adres.Interfejs
IDebugContainerField
jest odpytywane dla interfejsu IDebugMethodField . Jest to ten interfejs, który zapewnia dostęp do ustawień lokalnych metody.IDebugExpressionEvaluator::GetMethodProperty
tworzy wystąpienie klasy (wywoływanejCFieldProperty
w przykładzie), która uruchamiaIDebugProperty2
interfejs w celu reprezentowania ustawień lokalnych metody. ObiektIDebugMethodField
jest umieszczany w tymCFieldProperty
obiekcie wraz z obiektamiIDebugSymbolProvider
,IDebugAddress
iIDebugBinder
.Po zainicjowaniu
CFieldProperty
obiektu polecenie GetInfo jest wywoływane naIDebugMethodField
obiekcie w celu uzyskania struktury FIELD_INFO zawierającej wszystkie wyświetlane informacje o samej metodzie.IDebugExpressionEvaluator::GetMethodProperty
CFieldProperty
Zwraca obiekt jakoIDebugProperty2
obiekt.Program Visual Studio wywołuje obiekt EnumChildren zwróconego
IDebugProperty2
obiektu z filtremguidFilterLocalsPlusArgs
, który zwraca obiekt IEnumDebugPropertyInfo2 zawierający ustawienia lokalne metody. To wyliczenie jest wypełniane przez wywołania enumLocals i EnumArguments.Program Visual Studio wywołuje metodę Dalej, aby uzyskać strukturę DEBUG_PROPERTY_INFO dla każdego lokalnego. Ta struktura zawiera wskaźnik do interfejsu
IDebugProperty2
dla lokalnego.Program Visual Studio wywołuje metodę GetPropertyInfo dla każdego lokalnego w celu uzyskania nazwy, wartości i typu lokalnego. Te informacje są wyświetlane w oknie Ustawienia lokalne .
W tym obszarze
Implementowanie właściwości GetMethodProperty opisuje implementację właściwości GetMethodProperty.
Wyliczanie lokalnych opisuje, jak aparat debugowania (DE) wykonuje wywołanie wyliczania zmiennych lokalnych lub argumentów.
Uzyskiwanie właściwości lokalnych Opisuje, jak de wykonuje wywołanie w celu uzyskania nazwy, typu i wartości co najmniej jednego lokalnego.
Pobieranie wartości lokalnych Omawia uzyskiwanie wartości lokalnej, która wymaga usług obiektu binder podanego przez kontekst oceny.
Ocena ustawień lokalnych wyjaśnia sposób oceniania ustawień lokalnych.
Sekcje pokrewne
Kontekst oceny zawiera argumenty przekazywane, gdy de wywołuje ewaluatora wyrażeń (EE).
Przykład MyCEE przedstawia jedno podejście implementacji do tworzenia ewaluatora wyrażeń dla języka MyC.