IDiaEnumDebugStreamData
Note
This article applies to Visual Studio 2015. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here
Provides access to the records in a debug data stream.
Syntax
IDiaEnumDebugStreamData : IUnknown
Methods in Vtable Order
The following table shows the methods of IDiaEnumDebugStreamData
.
Method | Description |
---|---|
IDiaEnumDebugStreamData::get__NewEnum | Retrieves the IEnumVARIANT Interface version of this enumerator. |
IDiaEnumDebugStreamData::get_Count | Retrieves the number of records in the debug data stream. |
IDiaEnumDebugStreamData::get_name | Retrieves the name of the debug data stream. |
IDiaEnumDebugStreamData::Item | Retrieves the specified record. |
IDiaEnumDebugStreamData::Next | Retrieves the specified number of records from the enumerated sequence. |
IDiaEnumDebugStreamData::Skip | Skips a specified number of records in an enumerated sequence. |
IDiaEnumDebugStreamData::Reset | Resets the enumerated sequence to the beginning. |
IDiaEnumDebugStreamData::Clone | Creates an enumerator that contains the same enumerated sequence as the current enumerator. |
Remarks
This interface represents a stream of records in a debug data stream. The size and interpretation of each record is dependent on the data stream the record comes from. This interface effectively provides access to the raw data bytes in the symbol file.
Notes for Callers
Call the IDiaEnumDebugStreams::Item or IDiaEnumDebugStreams::Next methods to obtain an IDiaEnumDebugStreamData
object.
Example
This example shows how to access a single data stream and its records.
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);
}
Requirements
Header: Dia2.h
Library: diaguids.lib
DLL: msdia80.dll
See Also
Interfaces (Debug Interface Access SDK)
IDiaEnumDebugStreams::Item
IDiaEnumDebugStreams::Next