IDiaSession

Fornisce un contesto di query per i simboli di debug.

IDiaSession : IUnknown

Metodi

Nella tabella seguente sono elencati i metodi IDiaSession.

Metodo

Descrizione

IDiaSession::get_loadAddress

Viene recuperato l'indirizzo di caricamento del file eseguibile che corrisponde ai simboli nell'archivio simboli.Si tratta dello stesso valore passato al metodo put_loadAddress.

IDiaSession::put_loadAddress

Imposta l'indirizzo di caricamento del file eseguibile che corrisponde ai simboli nell'archivio simboli.

NotaNota
È importante chiamare questo metodo quando si ottiene un oggetto IDiaSession e prima di iniziare utilizzando l'oggetto.

IDiaSession::get_globalScope

Recupera un riferimento all'ambito globale.

IDiaSession::getEnumTables

Recupera un enumeratore per tutte le tabelle contenute nell'archivio simboli.

IDiaSession::getSymbolsByAddr

Recupera un enumeratore per tutti i simboli denominati le posizioni statiche.

IDiaSession::findChildren

Recupera tutti gli elementi figlio di un identificatore padre specificato che corrispondono al nome e il tipo del simbolo.

IDiaSession::findSymbolByAddr

Recupera un tipo specifico di simboli che contiene, o è il più vicino a, un indirizzo specificato.

IDiaSession::findSymbolByRVA

Recupera un tipo specifico di simboli che contiene, o è il più vicino a, un indirizzo virtuale relativo specificato (RVA).

IDiaSession::findSymbolByVA

Recupera un tipo specifico di simboli che contiene, o è il più vicino a, un indirizzo virtuale specificato (VA).

IDiaSession::findSymbolByToken

Recupera il simbolo che contiene un token di metadati specificato.

IDiaSession::symsAreEquiv

Verifica se due simboli sono equivalenti.

IDiaSession::symbolById

Recupera un simbolo dal relativo identificatore univoco.

IDiaSession::findSymbolByRVAEx

Recupera un tipo specifico di simboli che contiene, o è il più vicino a, un indirizzo virtuale e un offset di specificati.

IDiaSession::findSymbolByVAEx

Recupera un tipo specifico di simboli che contiene, o è il più vicino a, un indirizzo virtuale e un offset specificati.

IDiaSession::findFile

Recupera un file di origine da modulo e dal nome.

IDiaSession::findFileById

Recupera un file di origine dall'identificatore di file di origine.

IDiaSession::findLines

Recupera i numeri di riga all'interno di un identificatore specificato di file di origine e del modulo.

IDiaSession::findLinesByAddr

Recupera le righe in un modulo specificato contenente un indirizzo specificato.

IDiaSession::findLinesByRVA

Recupera le righe in un modulo specificato contenente un indirizzo virtuale relativo specificato.

IDiaSession::findLinesByVA

Cercare le informazioni sul numero di riga per le righe contenute in un intervallo di indirizzi specificato.

IDiaSession::findLinesByLinenum

Recupera le righe in un modulo specificato dal file di origine e il numero di riga.

IDiaSession::findInjectedSource

Recupera un database di origine inserito nell'archivio simboli dai provider di attributo o da altri componenti del processo di compilazione.

IDiaSession::getEnumDebugStreams

Recupera una sequenza enumerata di flussi di dati di debug.

IDiaSession::findInlineFramesByAddr

Recupera un'enumerazione che consente a un client ripetere da tutti i frame inline in un indirizzo specificato.

IDiaSession::findInlineFramesByRVA

Recupera un'enumerazione che consente a un client ripetere da tutti i frame inline in un indirizzo virtuale relativo specificato (RVA).

IDiaSession::findInlineFramesByVA

Recupera un'enumerazione che consente a un client ripetere da tutti i frame inline in un indirizzo virtuale specificato (VA).

IDiaSession::findInlineeLines

Recupera un'enumerazione che consente a un client ripetere direttamente o indirettamente dalle informazioni sul numero di riga di tutte le funzioni in linea, dal simbolo padre specificato.

IDiaSession::findInlineeLinesByAddr

Recupera un'enumerazione che consente a un client ripetere direttamente o indirettamente dalle informazioni sul numero di riga di tutte le funzioni in linea, dal simbolo padre specificato e contenuta nell'intervallo di indirizzi specificato.

IDiaSession::findInlineeLinesByRVA

Recupera un'enumerazione che consente a un client ripetere direttamente o indirettamente dalle informazioni sul numero di riga di tutte le funzioni in linea, dal simbolo padre specificato e che è contenuto all'interno dell'indirizzo virtuale relativo specificato (RVA).

IDiaSession::findInlineeLinesByVA

Recupera un'enumerazione che consente a un client ripetere direttamente o indirettamente dalle informazioni sul numero di riga di tutte le funzioni in linea, dal simbolo padre specificato e che è contenuto all'interno dell'indirizzo virtuale specificato (VA).

IDiaSession::findInlineeLinesByLinenum

Recupera un'enumerazione che consente a un client ripetere direttamente o indirettamente dalle informazioni sul numero di riga di tutte le funzioni in linea, nel file di origine e il numero di riga specificato.

IDiaSession::findInlineesByName

Recupera un'enumerazione che consente a un client scorrere le informazioni sul numero di riga di tutte le funzioni inline che corrispondono a un nome specificato.

IDiaSession::findSymbolsForAcceleratorPointerTag

Restituisce un'enumerazione dei simboli per la variabile che il valore specificato di tag corrisponde alla funzione padre stub dei tasti di scelta rapida.

IDiaSession::findSymbolsByRVAForAcceleratorPointerTag

Dato un valore corrispondente tag, questo metodo restituisce un'enumerazione di simboli contenuti in una funzione padre specificata di uno stub di scelta rapida a un indirizzo virtuale relativo specificato.

IDiaSession::findAcceleratorInlineesByName

Restituisce un'enumerazione di simboli per i frame inline che corrispondono al nome di funzione inline specificato.

IDiaSession::findAcceleratorInlineesByLinenum

Restituisce un'enumerazione di simboli per i frame inline che corrispondono alla posizione di origine specificata.

Note

È importante chiamare il metodo IDiaSession::put_loadAddress dopo aver creato l'oggetto IDiaSession e il valore passato al metodo put_loadAddress deve essere diverso da zero a per tutte le proprietà (VA) di indirizzo virtuale di simboli per consentire l'accesso.L'indirizzo del caricamento avrà da qualsiasi programma caricato l'eseguibile che viene eseguito il debug.Ad esempio, è possibile chiamare la funzione Win32 GetModuleInformation per recuperare l'indirizzo di caricamento dell'eseguibile, dato un handleeseguibile.

Esempio

In questo esempio viene illustrato come ottenere l'interfaccia IDiaSession come parte di un'inizializzazione generale di esaminare SDK.

CComPtr<IDiaDataSource> pSource;
ComPtr<IDiaSession> psession;


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 msdia80.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" );
        }
    }
    if ( FAILED( pSource->openSession( &psession ) ) )
    {
        Fatal( "openSession" );
    }
}

Requisiti

Intestazione: Dia2.h

Raccolta: diaguids.lib

DLL: msdia80.dll

Vedere anche

Attività

Esecuzione di query sul file .Pdb

Riferimenti

Exe

IDiaAddressMap

IDiaDataSource

IDiaDataSource::openSession

IDiaSymbol::findChildren

Altre risorse

Interfacce (Debug Interface Access SDK)

Panoramica (Debug Interface Access SDK)