Dela via


IDiaSessionEx

Tillhandahåller en utökad frågekontext för felsökningssymboler.

Syntax

IDiaSessionEx : IDiaSession

Metoder

I följande tabell visas metoderna för IDiaSessionEx.

Metod Beskrivning
IDiaSessionEx::isFastLinkPDB Hämtar ett booleskt värde som anger att källfelsökningsinformationen skapades med /DEBUG:fastlink.
IDiaSessionEx::isPortablePDB Hämtar ett booleskt värde som anger att källfelsökningsinformationen använder Portable PDB-format.
"IDiaSessionEx::getSourceLinkInfo" Hämtar en uppräkning av källlänkinformation.

Anmärkningar

Det är viktigt att anropa metoden IDiaSession::put_loadAddress när du har skapat IDiaSession -objektet – och värdet som skickas till put_loadAddress-metoden måste vara icke-noll – för att alla egenskaper för virtuella adresser (VA) för symboler ska vara tillgängliga. Belastningsadressen kommer från det program som lästes in den körbara filen som debugged. Du kan till exempel anropa funktionen Win32 GetModuleInformation för att hämta belastningsadressen för den körbara filen, med ett handtag till den körbara filen.

Eftersom IDiaSessionEx ärver från IDiaSessionhar alos samma metoder och kan skickas till alla funktioner som accepterar en IDiaSession.

Exempel

Det här exemplet visar hur du hämtar IDiaSessionEx-gränssnittet som en del av en allmän initiering av DIA-SDK (Debug Interface Access).

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

Krav

Rubrik: Dia2.h

Bibliotek: diaguids.lib

DLL: msdia140.dll

Se även