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