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::findChildrenEx Recupera tutti gli elementi figlio di un identificatore padre specificato che corrispondono al nome e al tipo di simbolo, incluse le variabili locali ottimizzate.
IDiaSession::findChildrenExByAddr Recupera tutti gli elementi figlio di un identificatore padre specificato che corrispondono al nome e al tipo di simbolo, incluse le variabili locali ottimizzate, che contengono o sono più vicini a un indirizzo specificato.
IDiaSession::findChildrenExByVA Recupera tutti gli elementi figlio di un identificatore padre specificato che corrispondono al nome e al tipo di simbolo, incluse le variabili locali ottimizzate, che contengono o sono più vicini a, un indirizzo virtuale specificato.
IDiaSession::findChildrenExByRVA Recupera tutti gli elementi figlio di un identificatore padre specificato che corrispondono al nome e al tipo di simbolo, incluse le variabili locali ottimizzate, che contengono o sono più vicini a, un indirizzo virtuale relativo specificato.
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::findAcceleratorInlineesByLinenum Restituisce un'enumerazione dei simboli per i fotogrammi inline che corrispondono alla posizione di origine specificata.
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::addressForVA Restituisce l'indirizzo equivalente per l'indirizzo virtuale specificato.
IDiaSession::addressForRVA Restituisce l'indirizzo equivalente per l'indirizzo virtuale relativo specificato.
IDiaSession::findILOffsetsByAddr Recupera un'enumerazione che consente a un client di scorrere gli offset MSIL all'interno di un intervallo di indirizzi specificato.
IDiaSession::findILOffsetsByRVA Recupera un'enumerazione che consente a un client di scorrere gli offset MSIL all'interno di un intervallo di indirizzi virtuali (RVA) specificato.
IDiaSession::findILOffsetsByVA Recupera un'enumerazione che consente a un client di scorrere gli offset MSIL all'interno di un intervallo di indirizzi virtuali specificato.
IDiaSession::findInputAssemblyFiles Recupera un'enumerazione che consente a un client di scorrere i file di assembly di input .NET Native.
IDiaSession::findInputAssembly Recupera un file di assembly di input .NET Native per indice.
IDiaSession::findInputAssemblyById Recupera il file di assembly di input .NET Native in base all'identificatore univoco.
IDiaSession::getFuncMDTokenMapSize Recupera le dimensioni, in byte, della mappa dei token della funzione dei metadati di .NET Native.
IDiaSession::getFuncMDTokenMap Recupera il contenuto della mappa dei token della funzione dei metadati .NET Native.
IDiaSession::getTypeMDTokenMapSize Recupera le dimensioni, in byte, della mappa del token del tipo di metadati .NET Native.
IDiaSession::getTypeMDTokenMap Recupera il contenuto della mappa del token del tipo di metadati .NET Native.
IDiaSession::getNumberOfFunctionFragments_VA Recupera il numero di frammenti non contigui per la funzione in corrispondenza dell'indirizzo virtuale (VA) specificato.
IDiaSession::getNumberOfFunctionFragments_RVA Recupera il numero di frammenti non contigui per la funzione in corrispondenza dell'indirizzo virtuale relativo specificato.
IDiaSession::getFunctionFragments_VA Recupera gli indirizzi e le lunghezze dei frammenti disconti per la funzione in corrispondenza dell'indirizzo virtuale specificato.
IDiaSession::getFunctionFragments_RVA Recupera gli indirizzi e le lunghezze di frammenti disconti per la funzione in corrispondenza dell'indirizzo virtuale relativo specificato.
IDiaSession::getExports Recupera un enumeratore per tutti i simboli esportati.
IDiaSession::getHeapAllocationSites Recupera un enumeratore per tutti i SymTagHeapAllocationSite simboli.
IDiaSession::findInputAssemblyFile Recupera il file di assembly di input .NET Native padre del simbolo specificato.

Osservazioni:

È importante chiamare il IDiaSession::put_loadAddress metodo dopo la creazione dell'oggetto IDiaSession e il valore passato al put_loadAddress metodo deve essere diverso da zero, perché le proprietà degli indirizzi virtuali (VA) dei simboli siano accessibili. 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 dell'SDK DIA (Debug Interface Access).

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