Compartilhar via


IDiaSession

Fornece um contexto de consulta para símbolos de depuração.

Syntax

IDiaSession : IUnknown

Métodos

A tabela a seguir mostra os métodos de IDiaSession.

Método Descrição
IDiaSession::get_loadAddress Recupera o endereço de carga do arquivo executável que corresponde aos símbolos neste repositório de símbolos. Esse é o mesmo valor que foi passado para o método put_loadAddress.
IDiaSession::put_loadAddress Recupera o endereço de carga do arquivo executável que corresponde aos símbolos neste repositório de símbolos. Observação: É importante chamar esse método quando você obtém um objeto IDiaSession e antes de começar a usar o objeto.
IDiaSession::get_globalScope Recupera uma referência ao escopo global.
IDiaSession::getEnumTables Recupera um enumerador para todas as tabelas contidas no repositório de símbolos.
IDiaSession::getSymbolsByAddr Recupera um enumerador para todos os símbolos nomeados em locais estáticos.
IDiaSession::findChildren Recupera todos os filhos de um identificador pai especificado que correspondem ao nome e ao tipo de símbolo.
IDiaSession::findChildrenEx Recupera todos os filhos de um identificador pai especificado que correspondem ao nome e ao tipo de símbolo, incluindo locais otimizados.
IDiaSession::findChildrenExByAddr Recupera todos os filhos de um identificador pai especificado que correspondem ao nome e ao tipo de símbolo, incluindo locais otimizados, que contêm ou estão mais próximos de um endereço especificado.
IDiaSession::findChildrenExByVA Recupera todos os filhos de um identificador pai especificado que correspondem ao nome e ao tipo de símbolo, incluindo locais otimizados, que contêm ou estão mais próximos de um VA (endereço virtual) especificado.
IDiaSession::findChildrenExByRVA Recupera todos os filhos de um identificador pai especificado que correspondem ao nome e ao tipo de símbolo, incluindo locais otimizados, que contêm ou estão mais próximos de um RVA (endereço virtual relativo) especificado.
IDiaSession::findSymbolByAddr Recupera um tipo de símbolo especificado que contém, ou está mais próximo de, um endereço especificado.
IDiaSession::findSymbolByRVA Recupera um tipo de símbolo especificado que contém, ou está mais próximo de, um RVA (endereço virtual relativo) especificado.
IDiaSession::findSymbolByVA Recupera um tipo de símbolo especificado que contém, ou está mais próximo de, um endereço virtual especificado (VA).
IDiaSession::findSymbolByToken Recupera o símbolo que contém um token de metadados especificado.
IDiaSession::symsAreEquiv Verifica se dois símbolos são equivalentes.
IDiaSession::symbolById Recupera um símbolo por meio de seu identificador exclusivo.
IDiaSession::findSymbolByRVAEx Recupera um tipo de símbolo especificado que contém, ou está mais próximo de, um RVA (endereço virtual relativo) especificado.
IDiaSession::findSymbolByVAEx Recupera um tipo de símbolo especificado que contém, ou está mais próximo de, um endereço virtual especificado.
IDiaSession::findFile Recupera um arquivo de origem por compiland e nome.
IDiaSession::findFileById Recupera um arquivo de origem por identificador de arquivo de origem.
IDiaSession::findLines Recupera números de linha em um compiland e identificador de arquivo de origem especificados.
IDiaSession::findLinesByAddr Recupera as linhas em um compiland especificado que contêm um endereço especificado.
IDiaSession::findLinesByRVA Recupera as linhas em um compiland especificado e que contêm um endereço virtual relativo especificado.
IDiaSession::findLinesByVA Localiza as informações de número de linha para linhas contidas em um intervalo de endereços especificado.
IDiaSession::findLinesByLinenum Recupera as linhas em um compiland especificado e por arquivo de origem e número de linha.
IDiaSession::findInjectedSource Recupera uma lista de fontes que foram colocadas no repositório de símbolos por provedores de atributo ou outros componentes do processo de compilação.
IDiaSession::getEnumDebugStreams Recupera uma sequência enumerada de fluxos de dados de depuração.
IDiaSession::findInlineFramesByAddr Recupera uma enumeração que permite que um cliente itere por todos os quadros embutidos em um determinado endereço.
IDiaSession::findInlineFramesByRVA Recupera uma enumeração que permite que um cliente itere por todos os quadros embutidos em um determinado RVA (endereço virtual relativo).
IDiaSession::findInlineFramesByVA Recupera uma enumeração que permite que um cliente itere por todos os quadros embutidos em um endereço virtual (VA) especificado.
IDiaSession::findInlineeLines Recupera uma enumeração que permite que um cliente itere pelas informações de número de linha de todas as funções embutidas, direta ou indiretamente, de acordo com o símbolo pai especificado.
IDiaSession::findInlineeLinesByAddr Recupera uma enumeração que permite que um cliente itere pelas informações de número de linha de todas as funções embutidas, direta ou indiretamente, de acordo com o símbolo pai especificado e que estejam contidas em um intervalo de endereços especificado.
IDiaSession::findInlineeLinesByRVA Recupera uma enumeração que permite que um cliente itere pelas informações de número de linha de todas as funções embutidas, direta ou indiretamente, de acordo com o símbolo pai especificado e que estejam contidas em endereço virtual relativo especificado.
IDiaSession::findInlineeLinesByVA Recupera uma enumeração que permite que um cliente itere por meio das informações de número de linha de todas as funções que são embutidas, direta ou indiretamente, de acordo com o símbolo pai especificado e que estejam contidas no VA (endereço virtual) especificado.
IDiaSession::findInlineeLinesByLinenum Recupera uma enumeração que permite que um cliente itere pelas informações de número de linha de todas as funções embutidas, direta ou indiretamente, de acordo com o arquivo de origem e o número de linha.
IDiaSession::findInlineesByName Recupera uma enumeração que permite que um cliente itere pelas informações de número de linha de todas as funções embutidas que correspondem a um nome especificado.
IDiaSession::findAcceleratorInlineesByLinenum Retorna uma enumeração de símbolos para quadros embutidos que correspondem ao local de origem especificado.
IDiaSession::findSymbolsForAcceleratorPointerTag Retorna uma enumeração de símbolos para a variável à qual o valor de marca especificado corresponde na função pai de stub do Acelerador.
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag Dado um valor de marca correspondente, esse método retorna uma enumeração de símbolos contidos em uma função pai de stub do acelerador em um endereço virtual relativo especificado.
IDiaSession::findAcceleratorInlineesByName Retorna uma enumeração de símbolos para quadros embutidos correspondentes ao nome da função embutida especificada.
IDiaSession::addressForVA Retorna o endereço equivalente para o VA (endereço virtual) especificado.
IDiaSession::addressForRVA Retorna o endereço equivalente para o RVA (endereço virtual relativo) especificado.
IDiaSession::findILOffsetsByAddr Recupera uma enumeração que permite que um cliente itere por meio dos deslocamentos MSIL dentro de um intervalo de endereços especificado.
IDiaSession::findILOffsetsByRVA Recupera uma enumeração que permite que um cliente itere por meio dos deslocamentos MSIL dentro de um intervalo de RVA (endereço virtual relativo) especificado.
IDiaSession::findILOffsetsByVA Recupera uma enumeração que permite que um cliente itere por meio dos deslocamentos MSIL dentro de um intervalo de VA (endereço virtual) especificado.
IDiaSession::findInputAssemblyFiles Recupera uma enumeração que permite que um cliente itere por meio dos arquivos de assembly de entrada do .NET Native.
IDiaSession::findInputAssembly Recupera um arquivo de assembly de entrada do .NET Native por índice.
IDiaSession::findInputAssemblyById Recupera o arquivo de assembly de entrada do .NET Native por identificador exclusivo.
IDiaSession::getFuncMDTokenMapSize Recupera o tamanho, em bytes, do mapa de token da função de metadados do .NET Native.
IDiaSession::getFuncMDTokenMap Recupera o conteúdo do mapa de token da função de metadados do .NET Native.
IDiaSession::getTypeMDTokenMapSize Recupera o tamanho, em bytes, do mapa de token do tipo de metadados do .NET Native.
IDiaSession::getTypeMDTokenMap Recupera o conteúdo do mapa de token do tipo de metadados do .NET Native.
IDiaSession::getNumberOfFunctionFragments_VA Recupera o número de fragmentos descontíguos para a função no VA (endereço virtual) especificado.
IDiaSession::getNumberOfFunctionFragments_RVA Recupera o número de fragmentos não contíguos para a função no RVA (endereço virtual relativo) especificado.
IDiaSession::getFunctionFragments_VA Recupera os endereços e comprimentos de fragmentos não contíguos para a função no VA (endereço virtual) especificado.
IDiaSession::getFunctionFragments_RVA Recupera os endereços e comprimentos de fragmentos não contíguos para a função no RVA (endereço virtual relativo) especificado.
IDiaSession::getExports Recupera um enumerador para todos os símbolos exportados.
IDiaSession::getHeapAllocationSites Recupera um enumerador para todos os SymTagHeapAllocationSite símbolos.
IDiaSession::findInputAssemblyFile Recupera o arquivo de assembly de entrada do .NET Native que é o pai do símbolo especificado.

Comentários

É importante chamar o IDiaSession::put_loadAddress método depois de criar o IDiaSession objeto — e o valor passado para o put_loadAddress método deve ser diferente de zero — para que todas as propriedades de endereço virtual (VA) dos símbolos sejam acessíveis. O endereço de carga vem de qualquer programa carregado do executável que está sendo depurado. Por exemplo, você pode chamar a função GetModuleInformation Win32 para recuperar o endereço de carga do executável, dado um identificador para o executável.

Exemplo

Este exemplo mostra como obter a IDiaSession interface como parte de uma inicialização geral do SDK do DIA (Acesso à Interface de Depuração).

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

Cabeçalho: Dia2.h

Biblioteca: diaguids.lib

DLL: msdia80.dll

Confira também