Compartilhar via


IDiaSession

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

Sintaxe

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 Define 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á mais próximo 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á mais próximo 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á mais próximo 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 VA (endereço virtual) 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 e deslocamento especificados.
IDiaSession::findSymbolByVAEx Recupera um tipo de símbolo especificado que contém ou está mais próximo de um endereço virtual e deslocamento especificados.
IDiaSession::findFile Recupera um arquivo de origem por compilação e nome.
IDiaSession::findFileById Recupera um arquivo de origem por identificador de arquivo de origem.
IDiaSession::findLines Recupera números de linha em um compilador e identificador de arquivo de origem especificados.
IDiaSession::findLinesByAddr Recupera as linhas em um compilador especificado e que contêm um endereço especificado.
IDiaSession::findLinesByRVA Recupera as linhas em um compilador 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 compilado especificado e por arquivo de origem e número de linha.
IDiaSession::findInjectedSource Recupera uma origem 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 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 RVA (endereço virtual relativo) especificado.
IDiaSession::findInlineFramesByVA Recupera uma enumeração que permite que um cliente itere por todos os quadros embutidos em um VA (endereço virtual) especificado.
IDiaSession::findInlineeLines 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 embutidas, direta ou indiretamente, pelo símbolo pai especificado.
IDiaSession::findInlineeLinesByAddr 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 embutidas, direta ou indiretamente, pelo símbolo pai especificado e que estão contidas no intervalo de endereços especificado.
IDiaSession::findInlineeLinesByRVA 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 embutidas, direta ou indiretamente, pelo símbolo pai especificado e que estão contidas no RVA (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 embutidas, direta ou indiretamente, pelo símbolo pai especificado e que estão contidas no va (endereço virtual) especificado.
IDiaSession::findInlineeLinesByLinenum 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 embutidas, direta ou indiretamente, no arquivo de origem e no número de linha especificados.
IDiaSession::findInlineesByName 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 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 de stub do Acelerador pai.
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag Dado um valor de marca correspondente, esse método retorna uma enumeração de símbolos contidos em uma função de stub do Acelerador 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 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 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 do token de função de metadados nativo do .NET.
IDiaSession::getFuncMDTokenMap Recupera o conteúdo do mapa do token de função de metadados nativo do .NET.
IDiaSession::getTypeMDTokenMapSize Recupera o tamanho, em bytes, do mapa de token de tipo de metadados nativo do .NET.
IDiaSession::getTypeMDTokenMap Recupera o conteúdo do mapa de token de tipo de metadados nativo do .NET.
IDiaSession::getNumberOfFunctionFragments_VA Recupera o número de fragmentos discontiguos para a função no VA (endereço virtual) especificado.
IDiaSession::getNumberOfFunctionFragments_RVA Recupera o número de fragmentos discontiguos para a função no RVA (endereço virtual relativo) especificado.
IDiaSession::getFunctionFragments_VA Recupera os endereços e os comprimentos de fragmentos discontiguos para a função no va (endereço virtual) especificado.
IDiaSession::getFunctionFragments_RVA Recupera os endereços e os comprimentos de fragmentos discontiguos 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 símbolos de SymTagHeapAllocationSite.
IDiaSession::findInputAssemblyFile Recupera o arquivo de assembly de entrada nativo do .NET que é o pai do símbolo especificado.

Observações

É 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 as propriedades de va (endereço virtual) dos símbolos sejam acessíveis. O endereço de carga é proveniente de qualquer programa que carregou o executável que está sendo depurado. Por exemplo, você pode chamar a função Win32 GetModuleInformation para recuperar o endereço de carga do 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 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

Consulte também