次の方法で共有


IDiaEnumStackFrames

使用可能なさまざまなスタック フレームを列挙します。

Vtable 順序のメソッド

メソッド 説明
IDiaEnumStackFrames::Next 列挙シーケンスから指定された数のスタック フレーム要素を取得します。
IDiaEnumStackFrames::Reset 列挙シーケンスを先頭にリセットします。

解説

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

このインターフェイスを取得するには、IDiaStackWalker::getEnumFrames または IDiaStackWalker::getEnumFrames2 メソッドを呼び出します。

次の例は、IDiaEnumStackFrames インターフェイスを取得して使用する方法を示しています。 PrintStackFrame 関数の実装については、IDiaStackFrame インターフェイスを参照してください。

void DumpStackFrames(IDiaStackWalker*     pStackWalker,
                     IDiaStackWalkHelper* pStackWalkHelper,
                     CV_CPU_TYPE_e        cpuType)
{
    if (pStackWalker != NULL && pStackWalkHelper != NULL)
    {
        CComPtr<IDiaEnumStackFrames> pEnumsFrames;
        HRESULT hr;
        hr = pStackWalker->getEnumFrames2(cpuType, pStackWalkHelper, &pEnumFrames);
        if (SUCCEEDED(hr) && pEnumFrames != NULL)
        {
            CComPtr<IDiaStackFrame> pStackFrame;
            DWORD celt = 0;

            while (pEnumFrames->Next(1, &pStackFrame, &celt) == S_OK)
            {
                PrintStackFrame(pStackFrame);
            }
            pStackFrame = NULL;
        }
    }
}

要件

ヘッダー: Dia2.h

ライブラリ: diaguids.lib

DLL: msdia80.dll

関連項目