IDiaSessionEx
Poskytuje rozšířený kontext dotazu pro symboly ladění.
Syntaxe
IDiaSessionEx : IDiaSession
Metody
Následující tabulka ukazuje metody IDiaSessionEx
.
metoda | Popis |
---|---|
IDiaSessionEx::isFastLinkPDB |
Načte logickou hodnotu označující, že byly vytvořeny informace o ladění zdroje s /DEBUG:fastlink . |
IDiaSessionEx::isPortablePDB |
Načte logickou hodnotu označující, že informace o ladění zdroje používají formát Portable PDB. |
IDiaSessionEx::getSourceLinkInfo | Načte výčet informací o zdrojovém propojení. |
Poznámky
Je důležité volat metodu IDiaSession::put_loadAddress
po vytvoření objektu IDiaSession
a hodnota předaná put_loadAddress
metodě musí být nenulová, aby všechny vlastnosti virtuální adresy (VA) symbolů byly přístupné. Načítá adresa pochází z libovolného programu načteného spustitelného souboru, který je laděný. Můžete například volat funkci GetModuleInformation
Win32, která načte adresu načtení spustitelného souboru vzhledem ke popisovači spustitelného souboru.
Vzhledem k tomu IDiaSessionEx
, že dědí z IDiaSession
, alos má všechny stejné metody, a lze jej předat jakékoli funkci, která přijímá IDiaSession
.
Příklad
Tento příklad ukazuje, jak získat IDiaSessionEx
rozhraní jako součást obecné inicializace sady SDK pro přístup k rozhraní ladě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?" );
}
}
Požadavky
Hlavička: Dia2.h
Knihovna: diaguids.lib
DLL: msdia140.dll