擷取列舉,允許用戶端逐一查看指定位址範圍內的 MSIL 位移。
語法
HRESULT findILOffsetsByVA (
ULONGLONG va,
DWORD length,
IDiaEnumLineNumbers** ppResult
);
參數
va
[in] 將位址指定為 VA。
length
[in] 指定此查詢所涵蓋的位址範圍位元組數目。
ppResult
[out] IDiaEnumLineNumbers 傳回 物件,其中包含涵蓋指定位址範圍的所有 MSIL 位移清單。
傳回值
如果成功,則會傳回 S_OK;否則,會傳回錯誤碼。
範例
此範例示範函式,該函式會使用函式的位址和長度,取得函式中包含的所有 MSIL 位移。
IDiaEnumLineNumbers* GetLineNumbersByAddr(IDiaSymbol *pFunc,
IDiaSession *pSession)
{
IDiaEnumLineNumbers* pEnum = NULL;
ULONGLONG va = 0;
ULONGLONG length = 0;
if (pFunc->get_virtualAddress ( &rva ) == S_OK)
{
pFunc->get_length ( &length );
pSession->findILOffsetsByVA( va, static_cast<DWORD>( length ), &pEnum );
}
return(pEnum);
}