IDiaSessionEx
Tillhandahåller en utökad frågekontext för felsökningssymboler.
Syntax
IDiaSessionEx : IDiaSession
Metoder
I följande tabell visas metoderna för IDiaSessionEx
.
Metod | Beskrivning |
---|---|
IDiaSessionEx::isFastLinkPDB |
Hämtar ett booleskt värde som anger att källfelsökningsinformationen skapades med /DEBUG:fastlink . |
IDiaSessionEx::isPortablePDB |
Hämtar ett booleskt värde som anger att källfelsökningsinformationen använder Portable PDB-format. |
"IDiaSessionEx::getSourceLinkInfo" | Hämtar en uppräkning av källlänkinformation. |
Anmärkningar
Det är viktigt att anropa metoden IDiaSession::put_loadAddress
när du har skapat IDiaSession
-objektet – och värdet som skickas till put_loadAddress
-metoden måste vara icke-noll – för att alla egenskaper för virtuella adresser (VA) för symboler ska vara tillgängliga. Belastningsadressen kommer från det program som lästes in den körbara filen som debugged. Du kan till exempel anropa funktionen Win32 GetModuleInformation
för att hämta belastningsadressen för den körbara filen, med ett handtag till den körbara filen.
Eftersom IDiaSessionEx
ärver från IDiaSession
har alos samma metoder och kan skickas till alla funktioner som accepterar en IDiaSession
.
Exempel
Det här exemplet visar hur du hämtar IDiaSessionEx
-gränssnittet som en del av en allmän initiering av DIA-SDK (Debug Interface Access).
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?" );
}
}
Krav
Rubrik: Dia2.h
Bibliotek: diaguids.lib
DLL: msdia140.dll