Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Udostępnia rozszerzony kontekst zapytania dla symboli debugowania.
Składnia
IDiaSessionEx : IDiaSession
Metody
W poniższej tabeli przedstawiono metody IDiaSessionEx.
| Metoda | Opis |
|---|---|
IDiaSessionEx::isFastLinkPDB |
Pobiera wartość logiczną wskazującą, że informacje o debugowaniu źródłowym zostały wygenerowane za pomocą /DEBUG:fastlink. |
IDiaSessionEx::isPortablePDB |
Pobiera wartość logiczną wskazującą, że informacje o debugowaniu źródłowym używają przenośnego formatu PDB. |
| "IDiaSessionEx::getSourceLinkInfo" | Pobiera wyliczenie informacji o linku źródłowym. |
Uwagi
Należy wywołać metodę IDiaSession::put_loadAddress po utworzeniu obiektu IDiaSession — a wartość przekazana do metody put_loadAddress musi być inna niż zero — aby wszystkie właściwości wirtualnego adresu (VA) były dostępne. Adres ładowania pochodzi z dowolnego programu załadowanego pliku wykonywalnego debugowanego. Na przykład można wywołać funkcję Win32 GetModuleInformation, aby pobrać adres ładowania pliku wykonywalnego, biorąc pod uwagę uchwyt pliku wykonywalnego.
Ponieważ IDiaSessionEx dziedziczy z IDiaSession, ma wszystkie te same metody i może zostać przekazany do dowolnej funkcji, która akceptuje IDiaSession.
Przykład
W tym przykładzie pokazano, jak uzyskać interfejs IDiaSessionEx w ramach ogólnej inicjalizacji zestawu SDK dostępu do interfejsu debugowania (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?" );
}
}
Wymagania
Nagłówek: Dia2.h
Biblioteka: diaguids.lib
BIBLIOTEKA DLL: msdia140.dll