IDiaSession
提供了用於偵錯符號的查詢內容。
語法
IDiaSession : IUnknown
方法
下表顯示 IDiaSession
方法。
方法 | 描述 |
---|---|
IDiaSession::get_loadAddress |
擷取對應至此符號存放區中符號的可執行檔載入位址。 這是傳遞至 put_loadAddress 方法的相同值。 |
IDiaSession::put_loadAddress |
設定對應至此符號存放區中符號的可執行檔載入位址。 注意: 在您取得 IDiaSession 物件後,並在開始使用該物件之前呼叫此方法是很重要的。 |
IDiaSession::get_globalScope |
擷取全域範圍的參考。 |
IDiaSession::getEnumTables |
擷取符號存放區中包含的所有資料表的列舉程式。 |
IDiaSession::getSymbolsByAddr |
擷取靜態位置上的所有具名符號的列舉程式。 |
IDiaSession::findChildren |
擷取符合名稱和符號類型之指定父識別碼的所有子系。 |
IDiaSession::findChildrenEx |
擷取符合名稱和符號類型之指定父標識碼的所有子系,包括優化的局部變數。 |
IDiaSession::findChildrenExByAddr |
擷取符合名稱和符號類型之指定父標識碼的所有子系,包括優化的局部變數、包含或最接近指定地址的子系。 |
IDiaSession::findChildrenExByVA |
擷取符合名稱和符號類型之指定父標識碼的所有子系,包括優化的局部變數、包含或最接近指定虛擬位址 (VA) 的局部變數。 |
IDiaSession::findChildrenExByRVA |
擷取符合名稱和符號類型之指定父標識碼的所有子系,包括優化的局部變數、包含或最接近指定相對虛擬位址 (RVA) 的局部變數。 |
IDiaSession::findSymbolByAddr |
擷取一個包含 (或最接近) 指定位址的指定符號型別。 |
IDiaSession::findSymbolByRVA |
擷取一個包含 (或最接近) 指定相對虛擬位址 (RVA) 的指定符號類型。 |
IDiaSession::findSymbolByVA |
擷取一個包含 (或最接近) 指定虛擬位址 (VA) 的指定符號類型。 |
IDiaSession::findSymbolByToken |
擷取包含指定中繼資料權杖的符號。 |
IDiaSession::symsAreEquiv |
檢查兩個符號是否對等。 |
IDiaSession::symbolById |
根據其唯一識別碼擷取符號。 |
IDiaSession::findSymbolByRVAEx |
擷取一個包含 (或最接近) 指定相對虛擬位址和偏移的指定符號類型。 |
IDiaSession::findSymbolByVAEx |
擷取一個包含 (或最接近) 指定虛擬位址和偏移的指定符號類型。 |
IDiaSession::findFile |
根據編譯模組和名稱來擷取一個來源檔案。 |
IDiaSession::findFileById |
根據來源檔案識別碼來擷取一個來源檔案。 |
IDiaSession::findLines |
擷取指定編譯模組和來源檔案識別碼內的行號。 |
IDiaSession::findLinesByAddr |
擷取指定編譯模組中包含指定位址的各行。 |
IDiaSession::findLinesByRVA |
擷取指定編譯模組中包含指定相對虛擬位址的各行。 |
IDiaSession::findLinesByVA |
尋找指定位址範圍中所包含的各行的行號資訊。 |
IDiaSession::findLinesByLinenum |
根據來源檔案和行號來擷取指定編譯模組中的各行。 |
IDiaSession::findInjectedSource |
根據屬性提供者或編譯程序的其他元件來擷取一個已放入符號存放區中的來源。 |
IDiaSession::getEnumDebugStreams |
擷取偵錯資料流的列舉序列。 |
IDiaSession::findInlineFramesByAddr |
擷取列舉,允許用戶端逐一查看指定位址上的所有內嵌框架。 |
IDiaSession::findInlineFramesByRVA |
擷取列舉,允許用戶端逐一查看指定相對虛擬位址 (RVA) 上的所有內嵌框架。 |
IDiaSession::findInlineFramesByVA |
擷取列舉,允許用戶端逐一查看指定虛擬位址 (VA) 上的所有內嵌框架。 |
IDiaSession::findInlineeLines |
擷取列舉,允許用戶端逐一查看由指定父代符號直接或間接內嵌之所有函式的行號資訊。 |
IDiaSession::findInlineeLinesByAddr |
擷取列舉,允許用戶端逐一查看內嵌或間接內嵌的所有函式行號資訊,並包含在指定的位址範圍內。 |
IDiaSession::findInlineeLinesByRVA |
擷取列舉,允許用戶端逐一查看內嵌、直接或間接內嵌的所有函式行號資訊,並包含在指定的相對虛擬位址 (RVA) 內。 |
IDiaSession::findInlineeLinesByVA |
擷取列舉,允許用戶端逐一查看內嵌或間接內嵌的所有函式行號資訊,並包含在指定的虛擬位址 (VA) 內。 |
IDiaSession::findInlineeLinesByLinenum |
擷取列舉,允許用戶端逐一查看指定來源檔案和行號中直接或間接內嵌之所有函式的行號資訊。 |
IDiaSession::findInlineesByName |
擷取列舉,允許用戶端逐一查符合指定名稱的所有內嵌函式的行號資訊。 |
IDiaSession::findAcceleratorInlineesByLinenum |
傳回與指定來源位置相對應的內嵌框架的符號列舉。 |
IDiaSession::findSymbolsForAcceleratorPointerTag |
傳回符號的列舉 (而符號的變數是在上層加速器存根函式中與指定標籤值相對應的變數)。 |
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag |
指定對應的標記值時,此方法會傳回指定父代 Accelerator 虛設常式函式中指定相對虛擬位址中包含的符號列舉。 |
IDiaSession::findAcceleratorInlineesByName |
傳回對應至指定內嵌函式名稱的內嵌框架符號的列舉。 |
IDiaSession::addressForVA |
傳回指定虛擬位址的對等位址(VA)。 |
IDiaSession::addressForRVA |
傳回指定相對虛擬位址的對等位址(RVA)。 |
IDiaSession::findILOffsetsByAddr |
擷取列舉,允許用戶端逐一查看指定位址範圍內的 MSIL 位移。 |
IDiaSession::findILOffsetsByRVA |
擷取列舉,允許用戶端逐一查看指定相對虛擬位址 (RVA) 範圍內的 MSIL 位移。 |
IDiaSession::findILOffsetsByVA |
擷取列舉,允許用戶端逐一查看指定虛擬位址 (VA) 範圍內的 MSIL 位移。 |
IDiaSession::findInputAssemblyFiles |
擷取列舉,允許用戶端逐一查看 .NET Native 輸入元件檔。 |
IDiaSession::findInputAssembly |
依索引擷取 .NET Native 輸入元件檔。 |
IDiaSession::findInputAssemblyById |
依唯一標識符擷取 .NET Native 輸入元件檔。 |
IDiaSession::getFuncMDTokenMapSize |
擷取 .NET Native 元數據函式令牌對應的大小,以位元組為單位。 |
IDiaSession::getFuncMDTokenMap |
擷取 .NET Native 元數據函式令牌對應的內容。 |
IDiaSession::getTypeMDTokenMapSize |
擷取 .NET Native 元數據類型令牌對應的大小,以位元組為單位。 |
IDiaSession::getTypeMDTokenMap |
擷取 .NET Native 元數據類型令牌對應的內容。 |
IDiaSession::getNumberOfFunctionFragments_VA |
擷取指定虛擬位址 (VA) 函式的不和諧片段數目。 |
IDiaSession::getNumberOfFunctionFragments_RVA |
擷取指定相對虛擬位址 (RVA) 上函式的不和諧片段數目。 |
IDiaSession::getFunctionFragments_VA |
擷取位於指定虛擬位址 (VA) 之函式的位址和不和諧片段長度。 |
IDiaSession::getFunctionFragments_RVA |
擷取函式在指定相對虛擬位址 (RVA) 的位址和不和諧片段長度。 |
IDiaSession::getExports |
擷取所有導出符號的列舉值。 |
IDiaSession::getHeapAllocationSites |
擷取所有 SymTagHeapAllocationSite 符號的列舉值。 |
IDiaSession::findInputAssemblyFile |
擷取指定符號父系的 .NET Native 輸入元件檔。 |
備註
建立 對象之後IDiaSession
,請務必呼叫 IDiaSession::put_loadAddress
方法,而傳遞至put_loadAddress
方法的值必須是非零,才能存取符號的任何虛擬位址 (VA) 屬性。 載入位址來自載入正在偵錯的可執行檔的任何程式。 例如,您可以呼叫 Win32 函式 GetModuleInformation
來擷取可執行檔的載入位址 (假設提供了可執行檔的控制代碼)。
範例
這個範例示範如何取得 IDiaSession
介面,做為偵錯介面存取 (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" );
}
}
需求
標頭: Dia2.h
程式庫: diaguids.lib
DLL: msdia80.dll