Aracılığıyla paylaş


IDiaSessionEx

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

Ayrıca bkz.