共用方式為


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

另請參閱