次の方法で共有


PWINDBG_OUTPUT_ROUTINE コールバック関数 (wdbgexts.h)

コールバック関数は、書式設定された文字列をデバッガー コマンド ウィンドウに出力する機能を実装します。

wdbgexts.h ヘッダーは、書式設定された文字列を出力するマクロ dprintf を宣言します。 これは C 言語ルーチン printf と同様に動作します。

構文

PWINDBG_OUTPUT_ROUTINE PwindbgOutputRoutine;

void PwindbgOutputRoutine(
  [in] PCSTR lpFormat,
  [in] ... unnamedParam2
)
{...}

パラメーター

[in] lpFormat

printf のように書式指定文字列を指定します。 一般に、変換文字は C とまったく同じように機能します。浮動小数点変換文字の場合、 l 修飾子を使用しない限り、64 ビット引数は 32 ビット浮動小数点数として解釈されます。

%p 変換文字はサポートされていますが、ターゲットの仮想アドレス空間内のポインターを表します。 修飾子がない可能性があり、デバッガーの内部アドレス書式を使用します。 次の追加の変換文字がサポートされています。

文字 引数の型 引数 印刷されたテキスト
%p ULONG64 ターゲットの仮想アドレス空間内のポインター ポインターの値。
%n DWORD_PTR ( ホスト のアーキテクチャに応じて 32 または 64 ビット) ホストの仮想アドレス空間内のポインター ポインターの値。 (これは標準の C %p 文字と同じです)。
%i ULONG64 任意の 64 ビット値 指定した値。 これが 64 ビット アドレスとして出力0xFFFFFFFFより大きい場合は、32 ビット アドレスとして出力されます。
%ma ULONG64 ターゲットの仮想アドレス空間内の NULL で終わる ASCII 文字列のアドレス 指定された文字列。
%mu ULONG64 ターゲットの仮想アドレス空間内の NULL で終わる Unicode 文字列のアドレス 指定された文字列。
%msa ULONG64 ターゲットの仮想アドレス空間内のANSI_STRING構造体のアドレス 指定された文字列。
%msu ULONG64 ターゲットの仮想アドレス空間内のUNICODE_STRING構造体のアドレス 指定された文字列。
%y ULONG64 ターゲットの仮想アドレス空間内のデバッガー シンボルのアドレス 指定した記号の名前を含む文字列 (および変位がある場合)。
%ly ULONG64 ターゲットの仮想アドレス空間内のデバッガー シンボルのアドレス 指定した記号の名前 (および変位がある場合)、および使用可能なソース行情報を含む文字列。

[in] unnamedParam2

[arguments] - printf のように、書式指定文字列の引数を指定します。 指定する引数の数は、 FormatString の変換文字の数と一致する必要があります。 各引数は、既定の式エバリュエーター (MASM または C++) によって評価される式です。 詳細については、「 数値式の構文」を参照してください。

戻り値

なし

解説

非常に大きな出力文字列を生成する場合、デバッガー エンジンまたはオペレーティング システムの制限に達する可能性があります。 たとえば、デバッガー エンジンの一部のバージョンでは、1 つの出力に対して 16,000 文字の制限があります。 非常に大きな出力が切り捨てられていることが分かった場合は、出力を複数の要求に分割する必要がある場合があります。

要件

要件
対象プラットフォーム デスクトップ
Header wdbgexts.h (Wdbgexts.h、Dbgeng.h を含む)