次の方法で共有


IDiaEnumDebugStreamData

デバッグ データ ストリーム内のレコードへのアクセスを提供します。

構文

IDiaEnumDebugStreamData : IUnknown

Vtable 順序のメソッド

次の表に、IDiaEnumDebugStreamData のメソッドを示します。

メソッド 説明
IDiaEnumDebugStreamData::get__NewEnum この列挙子の IEnumVARIANT インターフェイス バージョンを取得します。
IDiaEnumDebugStreamData::get_Count デバッグ データ ストリーム内のレコードの数を取得します。
IDiaEnumDebugStreamData::get_name デバッグ データ ストリームの名前を取得します。
IDiaEnumDebugStreamData::Item 指定されたレコードを取得します。
IDiaEnumDebugStreamData::Next 列挙シーケンスから指定された数のレコードを取得します。
IDiaEnumDebugStreamData::Skip 列挙シーケンス内の指定された数のレコードをスキップします。
IDiaEnumDebugStreamData::Reset 列挙シーケンスを先頭にリセットします。
IDiaEnumDebugStreamData::Clone 現在の列挙子と同じ列挙シーケンスを含む列挙子を作成します。

解説

このインターフェイスは、デバッグ データ ストリーム内のレコードのストリームを表します。 各レコードのサイズと解釈は、レコードの取得元のデータ ストリームによって異なります。 このインターフェイスを使用すると、シンボル ファイル内の生データ バイトに効果的にアクセスできます。

呼び出し元に関する注意事項

IDiaEnumDebugStreamData オブジェクトを取得するには、IDiaEnumDebugStreams::Item または IDiaEnumDebugStreams::Next メソッドを呼び出します。

この例は、単一のデータ ストリームとそのレコードにアクセスする方法を示しています。

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

関連項目