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):
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.
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).IDebugExpressionEvaluator::GetMethodProperty
volá funkci GetContainerField se zadaným objektemIDebugAddress
, aby získal IDebugContainerField, který představuje metodu obsahující zadanou adresu.Rozhraní
IDebugContainerField
je dotazováno pro rozhraní IDebugMethodField. Toto rozhraní poskytuje přístup k místním prostředím metody.IDebugExpressionEvaluator::GetMethodProperty
vytvoří instanci třídy (označované jakoCFieldProperty
v ukázce), která spouští rozhraníIDebugProperty2
, které představuje místní prostředí metody. ObjektIDebugMethodField
je umístěn v tomto objektuCFieldProperty
spolu s objektyIDebugSymbolProvider
,IDebugAddress
aIDebugBinder
objekty.Pokud je objekt
CFieldProperty
inicializován, je na objektuIDebugMethodField
volána funkce GetInfo, aby byla získána struktura FIELD_INFO, která obsahuje všechny zobrazitelné informace o samotné metodě.IDebugExpressionEvaluator::GetMethodProperty
vrátí objektCFieldProperty
jako objektIDebugProperty2
.Visual Studio volá EnumChildren na vrácený
IDebugProperty2
objekt s filtremguidFilterLocalsPlusArgs
, který vrátí objekt IEnumDebugPropertyInfo2 obsahující lokální proměnné metody. Tento seznam je naplněn voláním EnumLocals a EnumArguments.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.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í.
Související oddíly
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.