AfxDumpStack
無効 AFXAPI AfxDumpStack(DWORD dwTarget = AFX_STACK_DUMP_TARGET_DEFAULT);
パラメーター
dwTarget
ダンプの出力先を示します。ビットごとの OR (|) 演算子を使用して組み合わせることができます、可能な値は次のとおりです。:
-
AFX_STACK_DUMP_TARGET_TRACE特価;TRACEマクロ経由で出力を送信します。TRACEマクロは、デバッグ ビルドでのみ出力;リリース ビルドでは出力が生成されません。また、トレースデバッガー以外のターゲットをリダイレクトできます。(&N)。
-
AFX_STACK_DUMP_TARGET_DEFAULT特価;送信するには、既定のターゲットの出力をダンプします。デバッグ ビルドでは、出力がTRACEマクロに行きます。リリース ビルドでは、出力はクリップボードに行く(&N)。
-
AFX_STACK_DUMP_TARGET_CLIPBOARD特価;のみのクリップボードに出力を送信します。データをクリップボードにCF_TEXTクリップボード形式を使用してテキストとして配置されます。(&N)。
-
AFX_STACK_DUMP_TARGET_BOTH特価;クリップボード、トレースマクロを同時に出力を送信します。(&N)。
-
AFX_STACK_DUMP_TARGET_ODS特価;Win32 関数OutputDebugString()デバッガーに直接出力を送信します。このオプションは、両方デバッグのデバッガーの出力を生成し、デバッガーをプロセスにアタッチされている場合、リリース ビルドします。AFX_STACK_DUMP_TARGET_ODS常に達する、デバッガ (接続されている場合)、リダイレクトすることはできません(&N)。
解説
このグローバル関数は、現在のスタックのイメージを生成するために使用できます。次の例のボタン ハンドラーで、MFC ダイアログ アプリケーションからAfxDumpStackを呼び出すから生成される出力の 1 行を反映します。:
= = = AfxDumpStack 出力を開始 = = =…BFF928E0: WINDOWS\SYSTEM\KERNEL32。DLL !UTUnRegister + 2492 バイト= = = AfxDumpStack() の出力を終了 = = =
次の表は、上記の行の出力:
| 出力 |
説明 |
BFF928E0: |
最後の関数呼び出しのリターン アドレス。 |
WINDOWS\SYSTEM\KERNEL32。DLL! |
関数呼び出しが含まれているモジュールのフルパス名。 |
UTUnRegister |
呼ばれる関数のプロトタイプ。 |
+ 2492年バイト |
関数プロトタイプのアドレスからのバイト オフセット (この場合は、 UTUnRegister )、リターン アドレスを (この場合は、 BFF928E0 )。 |
AfxDumpStackは、MFC ライブラリのデバッグと nondebug のバージョンで利用可能です。ときに、実行可能ファイルが共有 DLL で MFC を使用してもただし、関数は常に静的にリンクされます。共有ライブラリの実装では、関数 MFCS42 であります。LIB ライブラリ (とその亜種)。
この関数を正しく使用するには:
-
ファイル IMAGEHLP。DLL がパスにある必要があります。この DLL があるない場合は、関数、エラー メッセージが表示されます。IMAGEHLP。DLL は、発送、再頒布可能 DLL を Win32 SDK および Windows です。それは C:\[windows]\system[32 で見る]。参照してください ポータブル実行可能ファイルのファイルの操作については IMAGEHLP によって提供される機能のセット。
-
スタックにフレームがモジュールでは、デバッグ情報を含める必要があります。デバッグ情報が含まれていない場合、関数は、スタック トレースが生成されますが、トレースに以下の詳細がします。
参照特価;afxDump(&N)