Condividi tramite


IDiaSession

Fornisce un contesto di query per i simboli di debug.

Sintassi

IDiaSession : IUnknown

Metodi

Nella tabella seguente vengono illustrati i metodi di IDiaSession.

metodo Descrizione
IDiaSession::get_loadAddress Recupera l'indirizzo di caricamento per il file eseguibile che corrisponde ai simboli in questo archivio simboli. Si tratta dello stesso valore passato al put_loadAddress metodo .
IDiaSession::put_loadAddress Imposta l'indirizzo di caricamento per il file eseguibile che corrisponde ai simboli in questo archivio simboli. Nota: è importante chiamare questo metodo quando si ottiene un IDiaSession oggetto e prima di iniziare a usare 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 in posizioni statiche.
IDiaSession::findChildren Recupera tutti gli elementi figlio di un identificatore padre specificato che corrispondono al nome e al tipo di simbolo.
IDiaSession::findSymbolByAddr Recupera un tipo di simbolo specificato che contiene o è più vicino a un indirizzo specificato.
IDiaSession::findSymbolByRVA Recupera un tipo di simbolo specificato che contiene o è più vicino a un indirizzo virtuale relativo specificato.
IDiaSession::findSymbolByVA Recupera un tipo di simbolo specificato che contiene o è più vicino a un indirizzo virtuale specificato.
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 in base al relativo identificatore univoco.
IDiaSession::findSymbolByRVAEx Recupera un tipo di simbolo specificato che contiene o è più vicino a un indirizzo virtuale e un offset relativi specificati.
IDiaSession::findSymbolByVAEx Recupera un tipo di simbolo specificato che contiene o è più vicino a un indirizzo virtuale e un offset specificati.
IDiaSession::findFile Recupera un file di origine in base al nome e al nome.
IDiaSession::findFileById Recupera un file di origine in base all'identificatore del file di origine.
IDiaSession::findLines Recupera i numeri di riga all'interno di un identificatore di file di origine e compiland specificato.
IDiaSession::findLinesByAddr Recupera le righe in un compiland specificato che contiene un indirizzo specificato.
IDiaSession::findLinesByRVA Recupera le righe in un compiland specificato che contiene un indirizzo virtuale relativo specificato.
IDiaSession::findLinesByVA Trova le informazioni sul numero di riga per le righe contenute in un intervallo di indirizzi specificato.
IDiaSession::findLinesByLinenum Recupera le righe in un oggetto compiland specificato in base al file di origine e al numero di riga.
IDiaSession::findInjectedSource Recupera un'origine inserita nell'archivio simboli da provider di attributi o 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 di scorrere tutti i fotogrammi inline in un determinato indirizzo.
IDiaSession::findInlineFramesByRVA Recupera un'enumerazione che consente a un client di scorrere tutti i fotogrammi inline in un indirizzo virtuale relativo specificato.
IDiaSession::findInlineFramesByVA Recupera un'enumerazione che consente a un client di scorrere tutti i frame inline in un indirizzo virtuale specificato.
IDiaSession::findInlineeLines Recupera un'enumerazione che consente a un client di scorrere le informazioni sul numero di riga di tutte le funzioni inlined, direttamente o indirettamente, dal simbolo padre specificato.
IDiaSession::findInlineeLinesByAddr Recupera un'enumerazione che consente a un client di scorrere le informazioni sul numero di riga di tutte le funzioni inlined, direttamente o indirettamente, dal simbolo padre specificato e sono contenute all'interno dell'intervallo di indirizzi specificato.
IDiaSession::findInlineeLinesByRVA Recupera un'enumerazione che consente a un client di scorrere le informazioni sul numero di riga di tutte le funzioni inlined, direttamente o indirettamente, dal simbolo padre specificato e sono contenute all'interno dell'indirizzo virtuale relativo specificato.
IDiaSession::findInlineeLinesByVA Recupera un'enumerazione che consente a un client di scorrere le informazioni sul numero di riga di tutte le funzioni inlined, direttamente o indirettamente, dal simbolo padre specificato e sono contenute all'interno dell'indirizzo virtuale specificato.
IDiaSession::findInlineeLinesByLinenum Recupera un'enumerazione che consente a un client di scorrere le informazioni sul numero di riga di tutte le funzioni inlined, direttamente o indirettamente, nel file di origine e nel numero di riga specificati.
IDiaSession::findInlineesByName Recupera un'enumerazione che consente a un client di scorrere le informazioni sul numero di riga di tutte le funzioni inlined che corrispondono a un nome specificato.
IDiaSession::findSymbolsForAcceleratorPointerTag Restituisce un'enumerazione dei simboli per la variabile a cui corrisponde il valore del tag specificato nella funzione stub dell'acceleratore padre.
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag Dato un valore di tag corrispondente, questo metodo restituisce un'enumerazione di simboli contenuti in una funzione stub dell'acceleratore padre specificata in corrispondenza di un indirizzo virtuale relativo specificato.
IDiaSession::findAcceleratorInlineesByName Restituisce un'enumerazione di simboli per i frame inline corrispondenti al nome della funzione inline specificato.
IDiaSession::findAcceleratorInlineesByLinenum Restituisce un'enumerazione dei simboli per i fotogrammi inline che corrispondono alla posizione di origine specificata.

Osservazioni:

È importante chiamare il metodo IDiaSession::p ut_loadAddress dopo la creazione dell'oggetto IDiaSession e il valore passato al put_loadAddress metodo deve essere diverso da zero, per rendere accessibili le proprietà di indirizzi virtuali (VA). L'indirizzo di caricamento proviene da qualsiasi programma caricato il file eseguibile sottoposto a debug. Ad esempio, è possibile chiamare la funzione GetModuleInformation Win32 per recuperare l'indirizzo di caricamento per l'eseguibile, dato un handle al file eseguibile.

Esempio

Questo esempio illustra come ottenere l'interfaccia IDiaSession come parte di un'inizializzazione generale di DIA 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

Libreria: diaguids.lib

DLL: msdia80.dll

Vedi anche