Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Biedt een uitgebreide querycontext voor foutopsporingssymbolen.
Syntaxis
IDiaSessionEx : IDiaSession
Methoden
In de volgende tabel ziet u de methoden van IDiaSessionEx.
| Methode | Beschrijving |
|---|---|
IDiaSessionEx::isFastLinkPDB |
Hiermee wordt een Booleaanse waarde opgehaald die aangeeft dat de brondebug-informatie is geproduceerd met /DEBUG:fastlink. |
IDiaSessionEx::isPortablePDB |
Hiermee wordt een Booleaanse waarde opgehaald die aangeeft dat de brondebug-informatie gebruikmaakt van de Portable PDB-indeling. |
| 'IDiaSessionEx::getSourceLinkInfo' | Haalt een opsomming van bronkoppelingsgegevens op. |
Opmerkingen
Het is belangrijk om de methode IDiaSession::put_loadAddress aan te roepen nadat u het IDiaSession-object hebt gemaakt, en de waarde die aan de methode put_loadAddress is doorgegeven, moet niet nul zijn, zodat alle eigenschappen van virtuele adressen (VA) van symbolen toegankelijk zijn. Het laadadres is afkomstig van het programma dat het uitvoerbare bestand heeft geladen dat wordt opgespoord. U kunt bijvoorbeeld de Win32-functie aanroepen GetModuleInformation om het laadadres voor het uitvoerbare bestand op te halen, met een ingang naar het uitvoerbare bestand.
Omdat IDiaSessionEx overneemt van IDiaSession, heeft het alos dezelfde methoden en kan deze worden doorgegeven aan elke functie die een IDiaSessionaccepteert.
Voorbeeld
In dit voorbeeld ziet u hoe u de IDiaSessionEx-interface kunt verkrijgen als onderdeel van een algemene initialisatie van de 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?" );
}
}
Eisen
Koptekst: Dia2.h
Bibliotheek: diaguids.lib
DLL: msdia140.dll