Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Fornece um contexto de consulta estendido para símbolos de depuração.
Sintaxe
IDiaSessionEx : IDiaSession
Métodos
A tabela a seguir mostra os métodos de IDiaSessionEx.
| Método | Descrição |
|---|---|
IDiaSessionEx::isFastLinkPDB |
Recupera um booliano que indica que as informações de depuração de origem foram produzidas com /DEBUG:fastlink. |
IDiaSessionEx::isPortablePDB |
Recupera um booliano que indica 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. |
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.
Como IDiaSessionEx herda de IDiaSession, ele 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 DIA (Acesso à Interface de Depuração).
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?" );
}
}
Requisitos
Cabeçalho: Dia2.h
Biblioteca: diaguids.lib
DLL: msdia140.dll