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
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per