_EFN_StackTrace 関数

マネージ スタック トレースのテキスト表現および CONTEXT レコードの配列 (アンマネージ コードとマネージ コードの間の各移行につき 1 つ) を提供します。

HRESULT CALLBACK _EFN_StackTrace(
    [in]  PDEBUG_CLIENT  Client,
    [out] WCHAR          wszTextOut[],
    [out] size_t         *puiTextLength,
    [out] LPVOID         pTransitionContexts,
    [out] size_t         *puiTransitionContextCount,
    [in]  size_t         uiSizeOfContext,
    [in]  DWORD          Flags
);

パラメーター

  • Client
    [入力] デバッグする対象のクライアント。

  • wszTextOut
    [出力] スタック トレースのテキスト表現。

  • puiTextLength
    [出力] wszTextOut に配置された文字の数へのポインター。

  • pTransitionContexts
    [出力] 移行コンテキストの配列。

  • puiTransitionContextCount
    [出力] 配列内の移行コンテキストの数へのポインター。

  • uiSizeOfContext
    [入力] コンテキスト構造体のサイズ。

  • Flags
    [入力] 各 module!functionname 行の前に EBP レジスタおよび ESP (Enter Stack Pointer) を表示する場合は、0 または SOS_STACKTRACE_SHOWADDRESSES (0x01) に設定します。

解説

_EFN_StackTrace 構造体は WinDbg プログラム インターフェイスから呼び出すことができます。 パラメーターの使い方は次のとおりです。

  • wszTextOut が null、puiTextLength が null 以外の場合、この関数は puiTextLength に文字列長を返します。

  • wszTextOut が null 以外の場合、この関数は最大で puiTextLength で示された位置まで、wszTextOut にテキストを格納します。 バッファーに十分な領域があった場合は正常に戻り、バッファーのサイズが十分でなかった場合は E_OUTOFMEMORY を返します

  • この関数の移行部分は、pTransitionContexts と puiTransitionContextCount が両方とも null の場合には無視されます。 この場合、呼び出し元には関数名のみがテキスト出力されます。

  • pTransitionContexts が null、puiTransitionContextCount が null 以外の場合、この関数は必要なコンテキスト エントリ数を puiTransitionContextCount に返します。

  • pTransitionContexts が null 以外の場合、これは、長さ puiTransitionContextCount の構造体の配列として扱われます。 構造体のサイズは uiSizeOfContext で指定し、アーキテクチャに応じて SimpleContext または CONTEXT のサイズである必要があります。

  • wszTextOut は次の書式で書き込まれます。

    "<ModuleName>!<Function Name>[+<offset in hex>]
    ...
    (TRANSITION)
    ..."
    
  • オフセットが 0x0 (16 進) の場合、オフセットは書き込まれません。

  • 現在のコンテキスト内のスレッドにマネージ コードがない場合は、SOS_E_NOMANAGEDCODE が返されます。

  • Flags パラメーターは、各 module!functionname 行の前に EBP および ESP を表示するかどうかに応じて、0 または SOS_STACKTRACE_SHOWADDRESSES です。 既定値は 0 です。

    #define SOS_STACKTRACE_SHOWADDRESSES   0x00000001
    

必要条件

プラットフォーム : 「.NET Framework システム要件」を参照

ヘッダー : SOS_Stacktrace.h

.NET Framework のバージョン: 4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0

参照

その他の技術情報

デバッグ グローバル静的関数