IDiaSession

Proporciona un contexto de consulta para los símbolo 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 cuando se obtiene 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::findSymbolByAddr Recupera un tipo de símbolo especificado que contiene una dirección especificada, o es el que más cercano está a dicha dirección.
IDiaSession::findSymbolByRVA Recupera un tipo de símbolo especificado que contiene, o está mas cerca de, una dirección virtual relativa (RVA) especificada.
IDiaSession::findSymbolByVA Recupera un tipo de símbolo especificado que contiene, o está mas cerca de, una dirección virtual (VA) especificada.
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á mas cerca de, una dirección virtual relativa y un desplazamiento especificados.
IDiaSession::findSymbolByVAEx Recupera un tipo de símbolo especificado que contiene, o está mas cerca de, 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 una compilación y un identificador de archivo de origen especificados.
IDiaSession::findLinesByAddr Recupera las líneas de una compilación especificada que contienen una dirección determinada.
IDiaSession::findLinesByRVA Recupera las líneas de una compilación especificada que contienen una dirección virtual relativa determinada.
IDiaSession::findLinesByVA Busca la información del número de línea para las líneas contenidas en un intervalo de direcciones especificado.
IDiaSession::findLinesByLinenum Recupera las líneas de una compilación especificada por archivo de origen y 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 iterar por todos los marcos insertados en una dirección determinada.
IDiaSession::findInlineFramesByRVA Recupera una enumeración que permite a un cliente iterar por todos los marcos insertados en una dirección virtual relativa (RVA) determinada.
IDiaSession::findInlineFramesByVA Recupera una enumeración que permite a un cliente iterar por todos los marcos insertados en una dirección virtual (VA) determinada.
IDiaSession::findInlineeLines Recupera una enumeración que permite a un cliente iterar por 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 iterar por 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 están contenidas dentro del intervalo de direcciones especificado.
IDiaSession::findInlineeLinesByRVA Recupera una enumeración que permite a un cliente iterar por 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 están contenidas dentro de la dirección virtual relativa (RVA) especificada.
IDiaSession::findInlineeLinesByVA Recupera una enumeración que permite a un cliente iterar por 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 están contenidas dentro de la dirección virtual (VA) especificada.
IDiaSession::findInlineeLinesByLinenum Recupera una enumeración que permite a un cliente iterar por la información de número de línea de todas las funciones insertadas, directa o indirectamente, en el archivo de origen y número de línea especificados.
IDiaSession::findInlineesByName Recupera una enumeración que permite a un cliente iterar por la información del número de línea de todas las funciones insertadas que coinciden con un nombre especificado.
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 en una dirección virtual relativa especificada.
IDiaSession::findAcceleratorInlineesByName Devuelve una enumeración de símbolos para los marcos insertados correspondientes al nombre de función insertado especificado.
IDiaSession::findAcceleratorInlineesByLinenum Devuelve una enumeración de símbolos para los marcos insertados que corresponden a la ubicación de origen especificada.

Comentarios

Es importante llamar al método IDiaSession::p ut_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 del programa que cargó el archivo ejecutable que se está depurando. Por ejemplo, puede llamar a la función GetModuleInformation de Win32 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 kit de desarrollo DIA (SDK).

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

Vea también