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