Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menyediakan konteks kueri yang diperluas untuk simbol debug.
Sintaksis
IDiaSessionEx : IDiaSession
Metode
Tabel berikut ini memperlihatkan metode IDiaSessionEx.
| Metode | Deskripsi |
|---|---|
IDiaSessionEx::isFastLinkPDB |
Mengambil Boolean yang menunjukkan bahwa informasi debug sumber diproduksi dengan /DEBUG:fastlink. |
IDiaSessionEx::isPortablePDB |
Mengambil Boolean yang menunjukkan bahwa informasi debug sumber menggunakan format PDB Portabel . |
| 'IDiaSessionEx::getSourceLinkInfo' | Mengambil enumerasi informasi tautan sumber. |
Komentar
Penting untuk memanggil metode IDiaSession::put_loadAddress setelah membuat objek IDiaSession — dan nilai yang diteruskan ke metode put_loadAddress harus bukan nol - agar properti alamat virtual (VA) simbol apa pun dapat diakses. Alamat beban berasal dari program apa pun yang memuat executable yang sedang di-debug. Misalnya, Anda dapat memanggil fungsi Win32 GetModuleInformation untuk mengambil alamat beban untuk yang dapat dieksekusi, diberikan handel ke yang dapat dieksekusi.
Karena IDiaSessionEx mewarisi dari IDiaSession, alos memiliki semua metode yang sama, dan dapat diteruskan ke fungsi apa pun yang menerima IDiaSession.
Contoh
Contoh ini menunjukkan cara mendapatkan antarmuka IDiaSessionEx sebagai bagian dari inisialisasi umum SDK Akses Antarmuka Debug (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?" );
}
}
Persyaratan
Header: Dia2.h
Pustaka: diaguids.lib
DLL: msdia140.dll
Lihat juga
- Antarmuka (SDK Akses Antarmuka Debug)
- Gambaran Umum
- Exe
IDiaAddressMapIDiaDataSourceIDiaDataSource::openSession- Mengkueri . File Pdb