Wyświetlanie 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).
Wykonywanie zawsze odbywa się w kontekście metody, znanej również jako metoda zawierająca lub bieżąca metoda. Po wstrzymaniu wykonywania program Visual Studio wywołuje aparat debugowania (DE), aby uzyskać listę zmiennych lokalnych i argumentów, zbiorczo nazywanych lokalizacjami metody . Program Visual Studio wyświetla te ustawienia lokalne i ich wartości w oknie Ustawienia lokalne .
Aby wyświetlić ustawienia lokalne, DE wywołuje metodę GetMethodProperty należącą do EE i nadaje jej kontekst oceny, czyli dostawcę symboli (SP), bieżący adres wykonywania i obiekt binder. Aby uzyskać więcej informacji, zobacz Kontekst oceny. Jeśli wywołanie powiedzie się, IDebugExpressionEvaluator::GetMethodProperty
metoda zwraca obiekt IDebugProperty2, który reprezentuje metodę zawierającą bieżący adres wykonywania.
DE wywołuje enumChildren, aby uzyskać obiekt IEnumDebugPropertyInfo2, który jest filtrowany w celu zwrócenia tylko ustawień lokalnych i wyliczone w celu utworzenia listy struktur DEBUG_PROPERTY_INFO. Każda struktura zawiera nazwę, typ i wartość lokalną. Typ i wartość są przechowywane jako sformatowane ciągi, odpowiednie do wyświetlania. Nazwa, typ i wartość są zwykle wyświetlane razem w jednym wierszu okna Ustawienia lokalne .
Uwaga
Okna QuickWatch i Watch wyświetlają również zmienne o tym samym formacie nazwy, wartości i typu. Jednak te wartości są uzyskiwane przez wywołanie metody GetPropertyInfo zamiast IDebugProperty2::EnumChildren
.
W tym obszarze
Przykładowa implementacja ustawień lokalnych używa przykładów do przechodzenia przez proces implementowania ustawień lokalnych.
Powiązana zawartość
Kontekst oceny wyjaśnia, że gdy aparat debugowania (DE) wywołuje ewaluatora wyrażeń (EE), przekazuje trzy argumenty.