Partilhar via


IDiaSession

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

Sintaxe

IDiaSession : IUnknown

Metodologia

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

Método Descrição
IDiaSession::get_loadAddress Recupera o endereço de carregamento do arquivo executável que corresponde aos símbolos neste repositório de símbolos. Este é o mesmo valor que foi passado para o método put_loadAddress.
IDiaSession::put_loadAddress Define o endereço de carregamento para o arquivo executável que corresponde aos símbolos neste armazenamento de símbolos. Nota: É 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 endereço virtual (VA) 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á mais próximo de um endereço virtual relativo (RVA) 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 endereço virtual relativo (RVA) especificado.
IDiaSession::findSymbolByVA Recupera um tipo de símbolo especificado que contém ou está mais próximo de um endereço virtual (VA) especificado.
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 seu identificador exclusivo.
IDiaSession::findSymbolByRVAEx Recupera um tipo de símbolo especificado que contém ou está mais próximo de um endereço virtual relativo especificado e deslocamento.
IDiaSession::findSymbolByVAEx Recupera um tipo de símbolo especificado que contém ou está mais próximo de um endereço virtual especificado e deslocamento.
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 dentro de um compilador especificado e identificador de arquivo de origem.
IDiaSession::findLinesByAddr Recupera as linhas em uma compilação especificada e que contêm um endereço especificado.
IDiaSession::findLinesByRVA Recupera as linhas em uma compilação especificada 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 uma compilação especificada e por arquivo de origem e número de linha.
IDiaSession::findInjectedSource Recupera uma fonte que foi colocada no repositório de símbolos por provedores de atributos 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 através de todos os quadros embutidos em um determinado endereço.
IDiaSession::findInlineFramesByRVA Recupera uma enumeração que permite que um cliente itere através de todos os quadros embutidos em um endereço virtual relativo (RVA) especificado.
IDiaSession::findInlineFramesByVA Recupera uma enumeração que permite que um cliente itere através de todos os quadros embutidos em um endereço virtual especificado (VA).
IDiaSession::findInlineeLines Recupera uma enumeração que permite que um cliente itere através das informações de número de linha de todas as funções que são embutidas, direta ou indiretamente, pelo símbolo pai especificado.
IDiaSession::findInlineeLinesByAddr Recupera uma enumeração que permite que um cliente itere através das informações de número de linha de todas as funções que são embutidas, direta ou indiretamente, pelo símbolo pai especificado e estão contidas no intervalo de endereços especificado.
IDiaSession::findInlineeLinesByRVA Recupera uma enumeração que permite que um cliente itere através das informações de número de linha de todas as funções que são embutidas, direta ou indiretamente, pelo símbolo pai especificado e estão contidas no endereço virtual relativo (RVA) especificado.
IDiaSession::findInlineeLinesByVA Recupera uma enumeração que permite que um cliente itere através das informações de número de linha de todas as funções que são embutidas, direta ou indiretamente, pelo símbolo pai especificado e estão contidas no endereço virtual especificado (VA).
IDiaSession::findInlineeLinesByLinenum Recupera uma enumeração que permite que um cliente itere através das informações de número de linha de todas as funções que estão embutidas, direta ou indiretamente, no arquivo de origem especificado e no número da linha.
IDiaSession::findInlineesByName Recupera uma enumeração que permite que um cliente itere através das 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 da tag especificado corresponde na função de stub Accelerator pai.
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag Dado um valor de tag correspondente, esse método retorna uma enumeração de símbolos contidos em uma função de stub Accelerator pai especificada 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 endereço virtual especificado (VA).
IDiaSession::addressForRVA Retorna o endereço equivalente para o endereço virtual relativo (RVA) especificado.
IDiaSession::findILOffsetsByAddr Recupera uma enumeração que permite que um cliente itere através dos deslocamentos MSIL dentro de um intervalo de endereços especificado.
IDiaSession::findILOffsetsByRVA Recupera uma enumeração que permite que um cliente itere através dos deslocamentos MSIL dentro de um intervalo de endereço virtual relativo (RVA) especificado.
IDiaSession::findILOffsetsByVA Recupera uma enumeração que permite que um cliente itere através dos deslocamentos MSIL dentro de um intervalo de endereço virtual (VA) especificado.
IDiaSession::findInputAssemblyFiles Recupera uma enumeração que permite que um cliente itere por meio dos arquivos de assembly de entrada nativos do .NET.
IDiaSession::findInputAssembly Recupera um arquivo de assembly de entrada nativo do .NET por índice.
IDiaSession::findInputAssemblyById Recupera o arquivo de assembly de entrada nativo do .NET por identificador exclusivo.
IDiaSession::getFuncMDTokenMapSize Recupera o tamanho, em bytes, do mapa de token de função de metadados nativos do .NET.
IDiaSession::getFuncMDTokenMap Recupera o conteúdo do mapa de token de função de metadados nativos do .NET.
IDiaSession::getTypeMDTokenMapSize Recupera o tamanho, em bytes, do mapa de token de tipo de metadados nativos do .NET.
IDiaSession::getTypeMDTokenMap Recupera o conteúdo do mapa de token de tipo de metadados nativos do .NET.
IDiaSession::getNumberOfFunctionFragments_VA Recupera o número de fragmentos descontíguos para a função no endereço virtual especificado (VA).
IDiaSession::getNumberOfFunctionFragments_RVA Recupera o número de fragmentos descontíguos para a função no endereço virtual relativo (RVA) especificado.
IDiaSession::getFunctionFragments_VA Recupera os endereços e comprimentos de fragmentos descontíguos para a função no endereço virtual especificado (VA).
IDiaSession::getFunctionFragments_RVA Recupera os endereços e comprimentos de fragmentos descontíguos para a função no endereço virtual relativo (RVA) 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 nativo do .NET que é o pai do símbolo especificado.

Comentários

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

Exemplo

Este exemplo mostra como obter a interface IDiaSession como parte de uma inicialização geral do SDK do Debug Interface Access (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" );
    }
}

Requerimentos

Cabeçalho: Dia2.h

Biblioteca: diaguids.lib

DLL: msdia80.dll

Ver também