IDebugSymbolProviderIDebugSymbolProvider

Cette interface représente un fournisseur de symboles qui fournit des types, les retourner en tant que champs et des symboles.This interface represents a symbol provider that provides symbols and types, returning them as fields.

SyntaxeSyntax

IDebugSymbolProvider : IUnknown  

Notes pour les implémenteursNotes for Implementers

Un fournisseur de symbole doit implémenter cette interface pour fournir les symboles et les informations de type pour un évaluateur d’expression.A symbol provider must implement this interface to supply symbol and type information to an expression evaluator.

Remarques pour les appelantsNotes for Callers

Cette interface est obtenue à l’aide de COM CoCreateInstance (fonction) (pour les fournisseurs de symbole non managé) ou en chargeant les assembly de code et l’instanciation du fournisseur de symboles selon les informations de cet assembly.This interface is obtained by using COM's CoCreateInstance function (for unmanaged symbol providers) or by loading the appropriate managed code assembly and instantiating the symbol provider based on the information found in that assembly. Le moteur de débogage instancie le fournisseur de symbole à travailler en coordination avec l’évaluateur d’expression.The debug engine instantiates the symbol provider to work in coordination with the expression evaluator. Consultez l’exemple pour une approche de l’instanciation de cette interface.See the Example for one approach to instantiating this interface.

Méthodes dans l'ordre VtableMethods in Vtable Order

Le tableau suivant présente les méthodes de IDebugSymbolProvider.The following table shows the methods of IDebugSymbolProvider.

MéthodeMethod DescriptionDescription
Initialize Obsolète.Deprecated. Ne pas utiliser.Do not use.
Uninitialize Obsolète.Deprecated. Ne pas utiliser.Do not use.
GetContainerFieldGetContainerField Obtient le champ qui contient l’adresse de débogage.Gets the field that contains the debug address.
GetField Obsolète.Deprecated. Ne pas utiliser.Do not use.
GetAddressesFromPositionGetAddressesFromPosition Mappe une position de document dans un tableau d’adresses de débogage.Maps a document position into an array of debug addresses.
GetAddressesFromContextGetAddressesFromContext Mappe un contexte de document dans un tableau d’adresses de débogage.Maps a document context into an array of debug addresses.
GetContextFromAddressGetContextFromAddress Mappe une adresse de débogage dans un contexte de document.Maps a debug address into a document context.
GetLanguageGetLanguage Obtient la langue utilisée pour compiler le code à l’adresse de débogage.Gets the language used to compile the code at the debug address.
GetGlobalContainer Obsolète.Deprecated. Ne pas utiliser.Do not use.
GetMethodFieldsByNameGetMethodFieldsByName Obtient le champ qui représente un nom qualifié complet de la méthode.Gets the field representing a fully qualified method name.
GetClassTypeByNameGetClassTypeByName Obtient le type de champ de classe représentant un nom de classe qualifié complet.Gets the class field type representing a fully qualified class name.
GetNamespacesUsedAtAddressGetNamespacesUsedAtAddress Crée un énumérateur pour les espaces de noms associé à l’adresse de débogage.Creates an enumerator for namespaces associated with the debug address.
GetTypeByNameGetTypeByName Mappe un nom de symbole pour un type de symbole.Maps a symbol name to a symbol type.
GetNextAddressGetNextAddress Obtient l’adresse de débogage qui suit une adresse donnée debug dans une méthode.Gets the debug address that follows a given debug address in a method.

NotesRemarks

Cette interface mappe les positions de document dans les adresses de débogage et vice versa.This interface maps document positions into debug addresses and vice versa.

SpécificationsRequirements

En-tête : sh.hHeader: sh.h

Namespace : Microsoft.VisualStudio.Debugger.InteropNamespace: Microsoft.VisualStudio.Debugger.Interop

Assembly : Microsoft.VisualStudio.Debugger.Interop.dllAssembly: Microsoft.VisualStudio.Debugger.Interop.dll

ExempleExample

Cet exemple montre comment instancier le fournisseur de symboles, étant donné son GUID (un moteur de débogage doit connaître cette valeur).This example shows how to instantiate the symbol provider, given its GUID (a debug engine must know this value).

// 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);  
}  

Voir aussiSee Also

Symbol Provider InterfacesSymbol Provider Interfaces