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