Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Hata ayıklama simgeleri için genişletilmiş sorgu bağlamı sağlar.
Sözdizimi
IDiaSessionEx : IDiaSession
Yöntemler
Aşağıdaki tabloda IDiaSessionExyöntemleri gösterilmektedir.
| Yöntem | Açıklama |
|---|---|
IDiaSessionEx::isFastLinkPDB |
Kaynak hata ayıklama bilgilerinin /DEBUG:fastlinkile oluşturulduğunu belirten bir Boole değeri alır. |
IDiaSessionEx::isPortablePDB |
Kaynak hata ayıklama bilgilerinin Taşınabilir PDB biçiminikullandığını belirten bir Boole değeri alır. |
| 'IDiaSessionEx::getSourceLinkInfo' | Kaynak bağlantı bilgilerinin bir sabit listesi alır. |
Açıklamalar
IDiaSession nesnesini oluşturduktan sonra IDiaSession::put_loadAddress yöntemini çağırmak ve simgelerin sanal adres (VA) özelliklerinin erişilebilir olması için put_loadAddress yöntemine geçirilen değerin sıfır olmayan olması gerekir. Yük adresi, hata ayıklanan yürütülebilir dosyayı yüklemiş olan programdan gelir. Örneğin, yürütülebilir dosyaya bir tanıtıcı verilip yürütülebilir dosyanın yük adresini almak için Win32 işlevini GetModuleInformation çağırabilirsiniz.
IDiaSessionEx
IDiaSessiondevraldığından, alos tüm aynı yöntemlere sahiptir ve IDiaSessionkabul eden herhangi bir işleve geçirilebilir.
Örnek
Bu örnekte, Hata Ayıklama Arabirimi Erişimi (DIA) SDK'sının genel başlatmasının bir parçası olarak IDiaSessionEx arabiriminin nasıl elde edileceği gösterilmektedir.
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?" );
}
}
Gereksinim -leri
Üst bilgi: Dia2.h
Kitaplık: diaguids.lib
DLL: msdia140.dll