Compartir a través de


IDiaSession

Proporciona un contexto de consulta para los símbolos de depuración.

Sintaxis

IDiaSession : IUnknown

Métodos

En la tabla siguiente se muestran los métodos de IDiaSession.

Método Descripción
IDiaSession::get_loadAddress Recupera la dirección de carga del archivo ejecutable que corresponde a los símbolos de este almacén de símbolos. Este es el mismo valor que se pasó al método put_loadAddress.
IDiaSession::put_loadAddress Establece la dirección de carga del archivo ejecutable que corresponde a los símbolos de este almacén de símbolos. Nota: Es importante llamar a este método al obtener un objeto IDiaSession y antes de empezar a usar el objeto .
IDiaSession::get_globalScope Recupera una referencia al ámbito global.
IDiaSession::getEnumTables Recupera un enumerador para todas las tablas contenidas en el almacén de símbolos.
IDiaSession::getSymbolsByAddr Recupera un enumerador para todos los símbolos con nombre en ubicaciones estáticas.
IDiaSession::findChildren Recupera todos los elementos secundarios de un identificador primario especificado que coinciden con el nombre y el tipo de símbolo.
IDiaSession::findChildrenEx Recupera todos los elementos secundarios de un identificador primario especificado que coinciden con el nombre y el tipo de símbolo, incluidas las variables locales optimizadas.
IDiaSession::findChildrenExByAddr Recupera todos los elementos secundarios de un identificador primario especificado que coinciden con el nombre y el tipo de símbolo, incluidas las variables locales optimizadas, que contienen o están más cercanas a una dirección especificada.
IDiaSession::findChildrenExByVA Recupera todos los elementos secundarios de un identificador primario especificado que coinciden con el nombre y el tipo de símbolo, incluidas las variables locales optimizadas, que contienen o están más cercanas a una dirección virtual especificada (VA).
IDiaSession::findChildrenExByRVA Recupera todos los elementos secundarios de un identificador primario especificado que coinciden con el nombre y el tipo de símbolo, incluidas las variables locales optimizadas, que contienen o están más cercanas a, una dirección virtual relativa especificada (RVA).
IDiaSession::findSymbolByAddr Recupera un tipo de símbolo especificado que contiene o está más cercano a una dirección especificada.
IDiaSession::findSymbolByRVA Recupera un tipo de símbolo especificado que contiene o está más cercano a una dirección virtual relativa especificada (RVA).
IDiaSession::findSymbolByVA Recupera un tipo de símbolo especificado que contiene o está más cercano a una dirección virtual especificada (VA).
IDiaSession::findSymbolByToken Recupera el símbolo que contiene un token de metadatos especificado.
IDiaSession::symsAreEquiv Comprueba si dos símbolos son equivalentes.
IDiaSession::symbolById Recupera un símbolo por su identificador único.
IDiaSession::findSymbolByRVAEx Recupera un tipo de símbolo especificado que contiene, o está más cercano, una dirección virtual relativa y un desplazamiento especificados.
IDiaSession::findSymbolByVAEx Recupera un tipo de símbolo especificado que contiene, o está más cercano, una dirección virtual y un desplazamiento especificados.
IDiaSession::findFile Recupera un archivo de origen por compilado y nombre.
IDiaSession::findFileById Recupera un archivo de origen por identificador de archivo de origen.
IDiaSession::findLines Recupera números de línea dentro de un identificador de archivo de código fuente y compilado especificado.
IDiaSession::findLinesByAddr Recupera las líneas de un compilado especificado que contiene una dirección especificada.
IDiaSession::findLinesByRVA Recupera las líneas de un compilado especificado que contiene una dirección virtual relativa especificada.
IDiaSession::findLinesByVA Busca la información del número de línea de las líneas contenidas en un intervalo de direcciones especificado.
IDiaSession::findLinesByLinenum Recupera las líneas de un compilado especificado por el archivo de origen y el número de línea.
IDiaSession::findInjectedSource Recupera un origen que se ha colocado en el almacén de símbolos por proveedores de atributos u otros componentes del proceso de compilación.
IDiaSession::getEnumDebugStreams Recupera una secuencia enumerada de flujos de datos de depuración.
IDiaSession::findInlineFramesByAddr Recupera una enumeración que permite a un cliente recorrer en iteración todos los fotogramas insertados en una dirección determinada.
IDiaSession::findInlineFramesByRVA Recupera una enumeración que permite a un cliente recorrer en iteración todos los fotogramas insertados en una dirección virtual relativa especificada (RVA).
IDiaSession::findInlineFramesByVA Recupera una enumeración que permite a un cliente recorrer en iteración todos los fotogramas insertados en una dirección virtual especificada (VA).
IDiaSession::findInlineeLines Recupera una enumeración que permite a un cliente recorrer en iteración la información de número de línea de todas las funciones insertadas, directa o indirectamente, por el símbolo primario especificado.
IDiaSession::findInlineeLinesByAddr Recupera una enumeración que permite a un cliente recorrer en iteración la información de número de línea de todas las funciones insertadas, directa o indirectamente, por el símbolo primario especificado y que se encuentran dentro del intervalo de direcciones especificado.
IDiaSession::findInlineeLinesByRVA Recupera una enumeración que permite a un cliente recorrer en iteración la información de número de línea de todas las funciones insertadas, directa o indirectamente, por el símbolo primario especificado y que se encuentran dentro de la dirección virtual relativa especificada (RVA).
IDiaSession::findInlineeLinesByVA Recupera una enumeración que permite a un cliente recorrer en iteración la información de número de línea de todas las funciones insertadas, directa o indirectamente, por el símbolo primario especificado y que se encuentran dentro de la dirección virtual especificada (VA).
IDiaSession::findInlineeLinesByLinenum Recupera una enumeración que permite a un cliente recorrer en iteración la información de número de línea de todas las funciones insertadas, directa o indirectamente, en el archivo de origen y el número de línea especificados.
IDiaSession::findInlineesByName Recupera una enumeración que permite a un cliente recorrer en iteración la información de número de línea de todas las funciones insertadas que coinciden con un nombre especificado.
IDiaSession::findAcceleratorInlineesByLinenum Devuelve una enumeración de símbolos para fotogramas insertados que corresponden a la ubicación de origen especificada.
IDiaSession::findSymbolsForAcceleratorPointerTag Devuelve una enumeración de símbolos para la variable a la que corresponde el valor de etiqueta especificado en la función de código auxiliar del acelerador primario.
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag Dado un valor de etiqueta correspondiente, este método devuelve una enumeración de símbolos contenidos en una función de código auxiliar del acelerador primario especificada en una dirección virtual relativa especificada.
IDiaSession::findAcceleratorInlineesByName Devuelve una enumeración de símbolos para fotogramas insertados correspondientes al nombre de función insertado especificado.
IDiaSession::addressForVA Devuelve la dirección equivalente para la dirección virtual especificada (VA).
IDiaSession::addressForRVA Devuelve la dirección equivalente para la dirección virtual relativa especificada (RVA).
IDiaSession::findILOffsetsByAddr Recupera una enumeración que permite a un cliente recorrer en iteración los desplazamientos de MSIL dentro de un intervalo de direcciones especificado.
IDiaSession::findILOffsetsByRVA Recupera una enumeración que permite a un cliente recorrer en iteración los desplazamientos de MSIL dentro de un intervalo de direcciones virtuales relativas (RVA) especificado.
IDiaSession::findILOffsetsByVA Recupera una enumeración que permite a un cliente recorrer en iteración los desplazamientos de MSIL dentro de un intervalo de direcciones virtuales (VA) especificado.
IDiaSession::findInputAssemblyFiles Recupera una enumeración que permite a un cliente recorrer en iteración los archivos de ensamblado de entrada nativos de .NET.
IDiaSession::findInputAssembly Recupera un archivo de ensamblado de entrada nativo de .NET por índice.
IDiaSession::findInputAssemblyById Recupera el archivo de ensamblado de entrada nativo de .NET por identificador único.
IDiaSession::getFuncMDTokenMapSize Recupera el tamaño, en bytes, del mapa de tokens de la función de metadatos nativos de .NET.
IDiaSession::getFuncMDTokenMap Recupera el contenido del mapa de tokens de la función de metadatos nativos de .NET.
IDiaSession::getTypeMDTokenMapSize Recupera el tamaño, en bytes, de la asignación de tokens de tipo de metadatos nativo de .NET.
IDiaSession::getTypeMDTokenMap Recupera el contenido de la asignación de tokens de tipo de metadatos nativos de .NET.
IDiaSession::getNumberOfFunctionFragments_VA Recupera el número de fragmentos no ambiguos de la función en la dirección virtual especificada (VA).
IDiaSession::getNumberOfFunctionFragments_RVA Recupera el número de fragmentos desconcertantes de la función en la dirección virtual relativa especificada (RVA).
IDiaSession::getFunctionFragments_VA Recupera las direcciones y longitudes de fragmentos no ambiguos de la función en la dirección virtual especificada (VA).
IDiaSession::getFunctionFragments_RVA Recupera las direcciones y longitudes de fragmentos no ambiguos de la función en la dirección virtual relativa especificada (RVA).
IDiaSession::getExports Recupera un enumerador para todos los símbolos exportados.
IDiaSession::getHeapAllocationSites Recupera un enumerador para todos los símbolos de SymTagHeapAllocationSite.
IDiaSession::findInputAssemblyFile Recupera el archivo de ensamblado de entrada nativo de .NET que es el elemento primario del símbolo especificado.

Observaciones

Es importante llamar al método IDiaSession::put_loadAddress después de crear el objeto IDiaSession y el valor pasado al método put_loadAddress debe ser distinto de cero, para que se pueda acceder a las propiedades de dirección virtual (VA) de los símbolos. La dirección de carga procede de cualquier programa que haya cargado el archivo ejecutable que se está depurando. Por ejemplo, puede llamar a la función Win32 GetModuleInformation para recuperar la dirección de carga del archivo ejecutable, dado un identificador al ejecutable.

Ejemplo

En este ejemplo se muestra cómo obtener la interfaz IDiaSession como parte de una inicialización general del SDK de acceso a la interfaz de depuración (DIA).

CComPtr<IDiaDataSource> pSource;
ComPtr<IDiaSession> psession;

void InitializeDIA(const char *szFilename)
{
    HRESULT hr = CoCreateInstance( CLSID_DiaSource,
                                   NULL,
                                   CLSCTX_INPROC_SERVER,
                                   __uuidof( IDiaDataSource ),
                                  (void **) &pSource);
    if (FAILED(hr))
    {
        Fatal("Could not CoCreate CLSID_DiaSource. Register msdia80.dll." );
    }
    wchar_t wszFilename[ _MAX_PATH ];
    mbstowcs( wszFilename,
              szFilename,
              sizeof( wszFilename )/sizeof( wszFilename[0] ) );
    if ( FAILED( pSource->loadDataFromPdb( wszFilename ) ) )
    {
        if ( FAILED( pSource->loadDataForExe( wszFilename, NULL, NULL ) ) )
        {
            Fatal( "loadDataFromPdb/Exe" );
        }
    }
    if ( FAILED( pSource->openSession( &psession ) ) )
    {
        Fatal( "openSession" );
    }
}

Requisitos

Encabezado: Dia2.h

Biblioteca: diaguids.lib

DLL: msdia80.dll

Consulte también