IDebugSymbolProvider
Diese Schnittstelle stellt einen Anbieter Symbol, der Symbole und Typen bereitstellt und gibt sie als Felder zurück.
IDebugSymbolProvider : IUnknown
Hinweise für Implementierer
Ein Symbol Anbieter muss diese Schnittstelle implementieren, um Typinformationen und Symbol an einen Ausdrucksauswertung angeben.
Hinweise für Aufrufer
Diese Schnittstelle wird abgerufen, indem CoCreateInstance-Funktion COM (für nicht verwalteten Anbieter Symbol) oder indem die entsprechende verwaltete Codeassembly lädt und Hersteller des Symbols basierend auf den Informationen in dieser Assembly instanziiert. Das Debugmodul instanziiert den Anbieter Symbol, um in Abstimmung mit dem Ausdrucksauswertung zu arbeiten. Weitere Informationen finden Sie im Beispiel für einen Ansatz zum Instanziieren dieser Schnittstelle.
Methoden in die Vtable-Reihenfolge
In der folgenden Tabelle werden die Methoden von IDebugSymbolProvideran.
Methode |
Beschreibung |
---|---|
Initialize |
Veraltet. Nicht verwenden. |
Uninitialize |
Veraltet. Nicht verwenden. |
Ruft das Rechteck ab, das die Debuginformationen Adresse enthält. |
|
GetField |
Veraltet. Nicht verwenden. |
Ordnet eine Position des Dokuments in ein Array von Adressen zu. |
|
Ordnet den Dokumentenkontext in ein Array von Adressen zu. |
|
Ordnet eine Adresse in den Dokumentenkontext. |
|
Ruft die Sprache ab, die verwendet wird, um den Code an der Adresse Debuggen kompilieren. |
|
GetGlobalContainer |
Veraltet. Nicht verwenden. |
Ruft das Rechteck ab, das einen vollqualifizierten Methodennamen darstellt. |
|
Klassenfeld Ruft den Typ ab, der einen vollqualifizierten Klassennamen darstellt. |
|
Erstellt einen Enumerator für die Namespaces Debuggen, die mit der Adresse zugeordnet sind. |
|
Ordnet einen Symbolnamen auf ein Symbol für den Typ. |
|
Ruft die Adresse ab, die die ein angegebenes debuggen Adresse in einer Methode erfolgreich ausgeführt wurde. |
Hinweise
Diese Schnittstelle weist Adressen von Positionen in Dokumenten und umgekehrt.
Anforderungen
Header: sh.h
Namespace: Microsoft.VisualStudio.Debugger.Interop
Assembly: Microsoft.VisualStudio.Debugger.Interop.dll
Beispiel
Dieses Beispiel zeigt, wie Sie den Anbieter Symbol angegeben werden, instanziiert ein GUID (Debug) - Modul muss diesen Wert kennen.
// 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);
}