Aracılığıyla paylaş


IDiaEnumDebugStreamData

Hata ayıklama veri akışındaki kayıtlara erişim sağlar.

Sözdizimi

IDiaEnumDebugStreamData : IUnknown

Vtable Sırasına Göre Yöntemler

Aşağıdaki tabloda yönteminin yöntemleri gösterilmektedir IDiaEnumDebugStreamData.

Metot Açıklama
IDiaEnumDebugStreamData::get__NewEnum Bu numaralandırıcının IEnumVARIANT Arabirimi sürümünü alır.
IDiaEnumDebugStreamData::get_Count Hata ayıklama veri akışındaki kayıt sayısını alır.
IDiaEnumDebugStreamData::get_name Hata ayıklama veri akışının adını alır.
IDiaEnumDebugStreamData::Item Belirtilen kaydı alır.
IDiaEnumDebugStreamData::Next Numaralandırılmış diziden belirtilen kayıt sayısını alır.
IDiaEnumDebugStreamData::Skip Numaralandırılmış sırada belirtilen sayıda kaydı atlar.
IDiaEnumDebugStreamData::Reset Numaralandırılmış sırayı en başa sıfırlar.
IDiaEnumDebugStreamData::Clone Geçerli numaralandırıcıyla aynı numaralandırılmış sırayı içeren bir numaralandırıcı oluşturur.

Açıklamalar

Bu arabirim, hata ayıklama veri akışındaki bir kayıt akışını temsil eder. Her kaydın boyutu ve yorumu, kaydın geldiği veri akışına bağlıdır. Bu arabirim, sembol dosyasındaki ham veri baytlarına etkin bir şekilde erişim sağlar.

Arayanlar İçin Notlar

Nesneyi IDiaEnumDebugStreamData almak için IDiaEnumDebug Akışlar:Item veya IDiaEnumDebug Akışlar::Next yöntemlerini çağırın.

Örnek

Bu örnekte tek bir veri akışına ve kayıtlarına nasıl erişılabileceği gösterilmektedir.

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);
}

Gereksinimler

Üst bilgi: Dia2.h

Kitaplık: diaguids.lib

DLL: msdia80.dll

Ayrıca bkz.