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