IDiaSessionEx
Proporciona un contexto de consulta extendido para los símbolos de depuración.
Sintaxis
IDiaSessionEx : IDiaSession
Métodos
En la tabla siguiente se muestran los métodos de IDiaSessionEx
.
Método | Descripción |
---|---|
IDiaSessionEx::isFastLinkPDB |
Recupera un valor booleano que indica que la información de depuración de origen se generó con /DEBUG:fastlink . |
IDiaSessionEx::isPortablePDB |
Recupera un valor booleano que indica que la información de depuración de origen usa el formato PDB portátil . |
"IDiaSessionEx::getSourceLinkInfo" | Recupera una enumeración de la información del vínculo de origen. |
Observaciones
Es importante llamar al método IDiaSession::put_loadAddress
después de crear el objeto IDiaSession
y el valor pasado al método put_loadAddress
debe ser distinto de cero, para que se pueda acceder a las propiedades de dirección virtual (VA) de los símbolos. La dirección de carga procede de cualquier programa que haya cargado el archivo ejecutable que se está depurando. Por ejemplo, puede llamar a la función Win32 GetModuleInformation
para recuperar la dirección de carga del archivo ejecutable, dado un identificador al ejecutable.
Dado que IDiaSessionEx
hereda de IDiaSession
, alos tiene todos los mismos métodos y se puede pasar a cualquier función que acepte un IDiaSession
.
Ejemplo
En este ejemplo se muestra cómo obtener la interfaz IDiaSessionEx
como parte de una inicialización general del SDK de acceso a la interfaz de depuración (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?" );
}
}
Requisitos
Encabezado: Dia2.h
Biblioteca: diaguids.lib
DLL: msdia140.dll
Consulte también
- interfaces de (SDK de acceso a interfaz de depuración)
- información general
- Exe
IDiaAddressMap
IDiaDataSource
IDiaDataSource::openSession
- Consulta de . de archivos Pdb