IDiaSessionEx
Fornece um contexto de consulta estendido para símbolos de depuração.
Sintaxe
IDiaSessionEx : IDiaSession
Metodologia
A tabela a seguir mostra os métodos de IDiaSessionEx
.
Método | Descrição |
---|---|
IDiaSessionEx::isFastLinkPDB |
Recupera um booleano indicando que as informações de depuração de origem foram produzidas com /DEBUG:fastlink . |
IDiaSessionEx::isPortablePDB |
Recupera um booleano indicando que as informações de depuração de origem estão usando o formato PDB portátil . |
'IDiaSessionEx::getSourceLinkInfo' | Recupera uma enumeração de informações de link de origem. |
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.
Como IDiaSessionEx
herda de IDiaSession
, ele alos tem todos os mesmos métodos, e pode ser passado para qualquer função que aceite um IDiaSession
.
Exemplo
Este exemplo mostra como obter a interface IDiaSessionEx
como parte de uma inicialização geral do SDK do Debug Interface Access (DIA).
CComPtr<IDiaDataSource> pSource;
ComPtr<IDiaSessionEx> psessionex;
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 msdia140.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" );
}
}
ComPtr<IDiaSession> psession;
if ( FAILED( pSource->openSession( &psession ) ) )
{
Fatal( "openSession" );
}
if ( FAILED( psession.QueryInterface(&psessionex) ) )
{
Fatal( "Failed to upgrade from IDiaSession to IDiaSessionEx, are you using an older version of msdia140.dll?" );
}
}
Requerimentos
Cabeçalho: Dia2.h
Biblioteca: diaguids.lib
DLL: msdia140.dll
Ver também
- Interfaces (Debug Interface Access SDK)
- Visão geral
- Exe
IDiaAddressMap
IDiaDataSource
IDiaDataSource::openSession
- Consultando o arquivo . do arquivo Pdb