Megosztás:


IDiaSessionEx

Kiterjesztett lekérdezési környezetet biztosít a hibakeresési szimbólumokhoz.

Szintaxis

IDiaSessionEx : IDiaSession

Módszerek

Az alábbi táblázat a IDiaSessionExmetódusait mutatja be.

Módszer Leírás
IDiaSessionEx::isFastLinkPDB Egy logikai értéket kér le, amely azt jelzi, hogy a forrás hibakeresési információja /DEBUG:fastlink.
IDiaSessionEx::isPortablePDB Egy logikai értéket kér le, amely azt jelzi, hogy a forrás hibakeresési információi a Portable PDB formátumot használják.
"IDiaSessionEx::getSourceLinkInfo" Lekéri a forráshivatkozás információinak számbavételét.

Megjegyzések

A IDiaSession objektum létrehozása után fontos meghívni a IDiaSession::put_loadAddress metódust – és a put_loadAddress metódusnak átadott értéknek nem nullának kell lennie –, hogy a szimbólumok bármely virtuális címtulajdonsága elérhető legyen. A betöltési cím attól a programtól származik, amely betöltötte a hibakeresés alatt álló végrehajtható fájlt. Meghívhatja például a Win32 függvényt GetModuleInformation, hogy lekérje a végrehajtható fájl terhelési címét egy leíróval.

Mivel IDiaSessionEx örökli a IDiaSession, az alos metódusa megegyezik, és bármely olyan függvénynek átadható, amely elfogadja a IDiaSession.

Példa

Ez a példa bemutatja, hogyan szerezheti be a IDiaSessionEx felületet a Hibakeresési felületi hozzáférés (DIA) SDK általános inicializálásának részeként.

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?" );
    }
}

Követelmények

Fejléc: Dia2.h

Könyvtár: diaguids.lib

DLL: msdia140.dll

Lásd még: