IDiaSession::findLinesByAddr
检索包含指定地址的指定编译单位中的行。
语法
HRESULT findLinesByAddr (
DWORD seg,
DWORD offset,
DWORD length,
IDiaEnumLineNumbers** ppResult
);
参数
seg
[in] 指定特定地址的节组件。
offset
[in] 指定特定地址的偏移量组件。
length
[in] 指定此查询要涵盖的地址范围的字节数。
ppResult
[out]返回一个 IDiaEnumLineNumbers
对象,该对象包含涵盖指定地址范围的所有行号的列表。
返回值
如果成功,则返回 S_OK
;否则,返回错误代码。
示例
此示例演示一个函数,该函数使用函数的地址和长度获取函数中包含的所有行号。
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->findLinesByAddr( seg, offset, static_cast<DWORD>( length ), &pEnum );
}
return(pEnum);
}