Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Toto rozhraní představuje zprostředkovatele symbolů, který poskytuje symboly a typy a vrací je jako pole.
Syntaxe
IDebugSymbolProvider : IUnknown
Poznámky pro implementátory
Zprostředkovatel symbolů musí implementovat toto rozhraní, aby bylo možné zadat informace o symbolu a typu do vyhodnocovače výrazů.
Poznámky pro volající
Toto rozhraní se získá pomocí funkce modelu COM CoCreateInstance (pro nespravované zprostředkovatele symbolů) nebo načtením příslušného sestavení spravovaného kódu a vytvořením instance zprostředkovatele symbolů na základě informací nalezených v tomto sestavení. Ladicí modul vytvoří instanci zprostředkovatele symbolů, aby fungoval v koordinaci s vyhodnocovačem výrazů. Podívejte se na příklad pro jeden přístup k vytvoření instance tohoto rozhraní.
Metody v pořadí Vtable
Následující tabulka ukazuje metody IDebugSymbolProvider.
| metoda | Popis |
|---|---|
Initialize |
Zastaralé Nepoužívat. |
Uninitialize |
Zastaralé Nepoužívat. |
| GetContainerField | Získá pole, které obsahuje ladicí adresu. |
GetField |
Zastaralé Nepoužívat. |
| GetAddressesFromPosition | Mapy pozici dokumentu do pole ladicích adres. |
| GetAddressesFromContext | Mapy kontext dokumentu do pole ladicích adres. |
| GetContextFromAddress | Mapy ladicí adresu do kontextu dokumentu. |
| GetLanguage | Získá jazyk použitý ke kompilaci kódu na ladicí adrese. |
GetGlobalContainer |
Zastaralé Nepoužívat. |
| GetMethodFieldsByName | Získá pole představující plně kvalifikovaný název metody. |
| GetClassTypeByName | Získá typ pole třídy představující plně kvalifikovaný název třídy. |
| GetNamespacesUsedAtAddress | Vytvoří enumerátor pro obory názvů přidružené k adrese ladění. |
| GetTypeByName | Mapy název symbolu k typu symbolu. |
| GetNextAddress | Získá ladicí adresu, která následuje za danou adresou ladění v metodě. |
Poznámky
Toto rozhraní mapuje pozice dokumentů na ladicí adresy a naopak.
Požadavky
Hlavička: sh.h
Obor názvů: Microsoft.VisualStudio.Debugger.Interop
Sestavení: Microsoft.VisualStudio.Debugger.Interop.dll
Příklad
Tento příklad ukazuje, jak vytvořit instanci zprostředkovatele symbolů vzhledem k jeho identifikátoru GUID (ladicí modul musí znát tuto hodnotu).
// A debug engine uses its own symbol provider and would know the GUID
// of that provider.
IDebugSymbolProvider *GetSymbolProvider(GUID *pSymbolProviderGuid)
{
// This is typically defined globally. For this example, it is
// defined here.
static const WCHAR strRegistrationRoot[] = L"Software\\Microsoft\\VisualStudio\\8.0Exp";
IDebugSymbolProvider *pProvider = NULL;
if (pSymbolProviderGuid != NULL) {
CLSID clsidProvider = { 0 };
::GetSPMetric(*pSymbolProviderGuid,
storetypeFile,
metricCLSID,
&clsidProvider,
strRegistrationRoot);
if (IsEqualGUID(clsidProvider,GUID_NULL)) {
// No file type provider, try metadata provider.
::GetSPMetric(*pSymbolProviderGuid,
::storetypeMetadata,
metricCLSID,
&clsidProvider,
strRegistrationRoot);
}
if (!IsEqualGUID(clsidProvider,GUID_NULL)) {
CComPtr<IDebugSymbolProvider> spSymbolProvider;
spSymbolProvider.CoCreateInstance(clsidProvider);
if (spSymbolProvider != NULL) {
pProvider = spSymbolProvider.Detach();
}
}
}
return(pProvider);
}