IDebugSymbolProviderIDebugSymbolProvider

Esta interfaz representa un proveedor de símbolos que proporciona los símbolos y tipos, devolverlos como campos.This interface represents a symbol provider that provides symbols and types, returning them as fields.

SintaxisSyntax

IDebugSymbolProvider : IUnknown

Notas para los implementadoresNotes for Implementers

Un proveedor de símbolos debe implementar esta interfaz para proporcionar símbolos y escriba la información a un evaluador de expresiones.A symbol provider must implement this interface to supply symbol and type information to an expression evaluator.

Notas para los llamadoresNotes for Callers

Esta interfaz se obtiene mediante el uso de COM CoCreateInstance función (por proveedores de símbolos no administrado) o cargando adecuado administrados ensamblado de código y crear instancias del proveedor de símbolos según la información encontrada en ese ensamblado.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. El motor de depuración crea el proveedor de símbolos para que funcione en coordinación con el evaluador de expresiones.The debug engine instantiates the symbol provider to work in coordination with the expression evaluator. Vea el ejemplo de un enfoque para crear una instancia de esta interfaz.See the Example for one approach to instantiating this interface.

Métodos en orden de VtableMethods in Vtable Order

La tabla siguiente muestran los métodos de IDebugSymbolProvider.The following table shows the methods of IDebugSymbolProvider.

MétodoMethod DescripciónDescription
Initialize Desusado.Deprecated. No utilizar.Do not use.
Uninitialize Desusado.Deprecated. No utilizar.Do not use.
GetContainerFieldGetContainerField Obtiene el campo que contiene la dirección de depuración.Gets the field that contains the debug address.
GetField Desusado.Deprecated. No utilizar.Do not use.
GetAddressesFromPositionGetAddressesFromPosition Asigna una posición de documento en una matriz de direcciones de depuración.Maps a document position into an array of debug addresses.
GetAddressesFromContextGetAddressesFromContext Asigna un contexto de documento en una matriz de direcciones de depuración.Maps a document context into an array of debug addresses.
GetContextFromAddressGetContextFromAddress Asigna una dirección de depuración en un contexto de documento.Maps a debug address into a document context.
GetLanguageGetLanguage Obtiene el lenguaje usado para compilar el código en la dirección de depuración.Gets the language used to compile the code at the debug address.
GetGlobalContainer Desusado.Deprecated. No utilizar.Do not use.
GetMethodFieldsByNameGetMethodFieldsByName Obtiene el campo que representa el nombre completo del método.Gets the field representing a fully qualified method name.
GetClassTypeByNameGetClassTypeByName Obtiene el tipo de campo de clase que representa el nombre completo de clase.Gets the class field type representing a fully qualified class name.
GetNamespacesUsedAtAddressGetNamespacesUsedAtAddress Crea un enumerador para los espacios de nombres asociado a la dirección de depuración.Creates an enumerator for namespaces associated with the debug address.
GetTypeByNameGetTypeByName Asigna un nombre de símbolo a un tipo de símbolo.Maps a symbol name to a symbol type.
GetNextAddressGetNextAddress Obtiene la dirección de depuración que sigue a una dirección de depuración especificado en un método.Gets the debug address that follows a given debug address in a method.

ComentariosRemarks

Esta interfaz asigna las posiciones de documento en las direcciones de depuración y viceversa.This interface maps document positions into debug addresses and vice versa.

RequisitosRequirements

Encabezado: sh.hHeader: sh.h

Espacio de nombres: Microsoft.VisualStudio.Debugger.InteropNamespace: Microsoft.VisualStudio.Debugger.Interop

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

EjemploExample

En este ejemplo se muestra cómo crear una instancia del proveedor de símbolos, dado su GUID (un motor de depuración debe conocer este valor).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);
}

Vea tambiénSee also