Sdílet prostřednictvím


Ukázková implementace lokálů

Důležitý

V sadě Visual Studio 2015 je tento způsob implementace vyhodnocovačů výrazů zastaralý. Informace o implementaci vyhodnocovačů výrazů CLR najdete v tématech vyhodnocovače výrazů CLR a ukázkový vyhodnocovač spravovaných výrazů.

Následuje přehled toho, jak Sada Visual Studio získá místní hodnoty metody z vyhodnocovače výrazů (EE):

  1. Visual Studio volá ladicí modul (DE) GetDebugProperty pro získání IDebugProperty2 objektu, který představuje všechny vlastnosti rámce zásobníku, včetně místních hodnot.

  2. IDebugStackFrame2::GetDebugProperty volá GetMethodProperty, aby získal objekt, který popisuje metodu, v níž došlo k zarážce. DE poskytuje poskytovatele symbolů (IDebugSymbolProvider), adresu (IDebugAddress) a vazač (IDebugBinder).

  3. IDebugExpressionEvaluator::GetMethodProperty volá funkci GetContainerField se zadaným objektem IDebugAddress, aby získal IDebugContainerField, který představuje metodu obsahující zadanou adresu.

  4. Rozhraní IDebugContainerField je dotazováno pro rozhraní IDebugMethodField. Toto rozhraní poskytuje přístup k místním prostředím metody.

  5. IDebugExpressionEvaluator::GetMethodProperty vytvoří instanci třídy (označované jako CFieldProperty v ukázce), která spouští rozhraní IDebugProperty2, které představuje místní prostředí metody. Objekt IDebugMethodField je umístěn v tomto objektu CFieldProperty spolu s objekty IDebugSymbolProvider, IDebugAddressa IDebugBinder objekty.

  6. Pokud je objekt CFieldProperty inicializován, je na objektu IDebugMethodField volána funkce GetInfo, aby byla získána struktura FIELD_INFO, která obsahuje všechny zobrazitelné informace o samotné metodě.

  7. IDebugExpressionEvaluator::GetMethodProperty vrátí objekt CFieldProperty jako objekt IDebugProperty2.

  8. Visual Studio volá EnumChildren na vrácený IDebugProperty2 objekt s filtrem guidFilterLocalsPlusArgs, který vrátí objekt IEnumDebugPropertyInfo2 obsahující lokální proměnné metody. Tento seznam je naplněn voláním EnumLocals a EnumArguments.

  9. Visual Studio volá Další k získání struktury DEBUG_PROPERTY_INFO pro každý místní. Tato struktura obsahuje ukazatel na rozhraní IDebugProperty2 pro lokální objekt.

  10. Visual Studio volá GetPropertyInfo pro každý místní, aby získal název, hodnotu a typ místního. Tyto informace se zobrazí v okně Lokální.

V této části

Implementace GetMethodProperty popisuje implementaci GetMethodProperty.

Výčet místních proměnných popisuje, jak ladicí modul (DE) volá výčet místních proměnných nebo argumentů.

Získání místních vlastností popisuje, jak DE provádí volání pro získání názvu, typu a hodnoty jednoho nebo více místních proměnných.

Získání místních hodnot probírá získání hodnoty místní proměnné, což vyžaduje služby objektu pořadače zadaného kontextem vyhodnocení.

Vyhodnocení místních hodnot vysvětluje, jak se místní hodnoty vyhodnocují.

kontext vyhodnocení poskytuje argumenty, které se předávají při volání vyhodnocovače výrazů (EE).

Ukázka MyCEE demonstruje jeden implementační přístup k vytvoření vyhodnocovače výrazů pro jazyk MyC.

Viz také