Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предоставляет доступ к записям в потоке данных отладки.
IDiaEnumDebugStreamData : IUnknown
В следующей таблице показаны методы IDiaEnumDebugStreamData
.
Метод | Description |
---|---|
IDiaEnumDebugStreamData::get__NewEnum | Извлекает версию интерфейса IEnumVARIANT этого перечислителя. |
IDiaEnumDebugStreamData::get_Count | Извлекает количество записей в потоке данных отладки. |
IDiaEnumDebugStreamData::get_name | Извлекает имя отладочного потока данных. |
IDiaEnumDebugStreamData::Item | Извлекает указанную запись. |
IDiaEnumDebugStreamData::Next | Извлекает указанное количество записей из перечисленной последовательности. |
IDiaEnumDebugStreamData::Skip | Пропускает указанное количество записей в перечисленной последовательности. |
IDiaEnumDebugStreamData::Reset | Сбрасывает перечисленную последовательность в начало. |
IDiaEnumDebugStreamData::Clone | Создает перечислитель, содержащий ту же перечисленную последовательность, что и текущий перечислитель. |
Этот интерфейс представляет поток записей в потоке данных отладки. Размер и интерпретация каждой записи зависят от потока данных, из которых поступает запись. Этот интерфейс эффективно предоставляет доступ к необработанным байтам данных в файле символов.
Вызовите методы IDiaEnumDebug Потоки::Item или IDiaEnumDebug Потоки::Next для получения IDiaEnumDebugStreamData
объекта.
В этом примере показано, как получить доступ к одному потоку данных и его записям.
void PrintStreamData(IDiaEnumDebugStreamData* pStream)
{
BSTR wszName;
LONG dwElem;
ULONG celt = 0;
DWORD cbData;
DWORD cbTotal = 0;
BYTE data[1024];
if(pStream->get_name(&wszName) != S_OK)
{
wprintf_s(L"ERROR - PrintStreamData() get_name\n");
}
else
{
wprintf_s(L"Stream: %s", wszName);
SysFreeString(wszName);
}
if(pStream->get_Count(&dwElem) != S_OK)
{
wprintf(L"ERROR - PrintStreamData() get_Count\n");
}
else
{
wprintf(L"(%d)\n", dwElem);
}
while(pStream->Next(1, sizeof(data), &cbData, (BYTE *)&data, &celt) == S_OK)
{
DWORD i;
for (i = 0; i < cbData; i++)
{
wprintf(L"%02X ", data[i]);
if(i && i % 8 == 7 && i+1 < cbData)
{
wprintf(L"- ");
}
}
wprintf(L"| ");
for(i = 0; i < cbData; i++)
{
wprintf(L"%c", iswprint(data[i]) ? data[i] : '.');
}
wprintf(L"\n");
cbTotal += cbData;
}
wprintf(L"Summary :\n\tSizeof(Elem) = %d\n\tNo of Elems = %d\n\n",
cbTotal/dwElem, dwElem);
}
Заголовок: Dia2.h
Библиотека: diaguids.lib
DLL: msdia80.dll