Udostępnij za pośrednictwem


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):

  1. 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.

  2. 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).

  3. IDebugExpressionEvaluator::GetMethodPropertywywołuje metodę GetContainerField z podanym IDebugAddress obiektem, aby uzyskać obiekt IDebugContainerField reprezentujący metodę zawierającą określony adres.

  4. Interfejs IDebugContainerField jest odpytywane dla interfejsu IDebugMethodField . Jest to ten interfejs, który zapewnia dostęp do ustawień lokalnych metody.

  5. IDebugExpressionEvaluator::GetMethodProperty tworzy wystąpienie klasy (wywoływanej CFieldProperty w przykładzie), która uruchamia IDebugProperty2 interfejs w celu reprezentowania ustawień lokalnych metody. Obiekt IDebugMethodField jest umieszczany w tym CFieldProperty obiekcie wraz z obiektami IDebugSymbolProvider, IDebugAddressi IDebugBinder .

  6. Po zainicjowaniu CFieldProperty obiektu polecenie GetInfo jest wywoływane na IDebugMethodField obiekcie w celu uzyskania struktury FIELD_INFO zawierającej wszystkie wyświetlane informacje o samej metodzie.

  7. IDebugExpressionEvaluator::GetMethodPropertyCFieldProperty Zwraca obiekt jako IDebugProperty2 obiekt.

  8. Program Visual Studio wywołuje obiekt EnumChildren zwróconego IDebugProperty2 obiektu z filtrem guidFilterLocalsPlusArgs, który zwraca obiekt IEnumDebugPropertyInfo2 zawierający ustawienia lokalne metody. To wyliczenie jest wypełniane przez wywołania enumLocals i EnumArguments.

  9. 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.

  10. 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.

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.

Zobacz też