IDiaSession::findLinesByAddr
Извлекает линии в указанном compiland, содержащих определенный адрес.
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);
}