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 l 修飾詞,否則 64 位自變數會解譯為 32 位浮點數。
支援 %p 轉換字元,但它代表目標虛擬位址空間中的指標。 它可能沒有任何修飾詞,而且會使用調試程式的內部位址格式。 支援下列額外的轉換字元:
字元 | 自變數類型 | 論點 | 列印的文字 |
---|---|---|---|
%p | ULONG64 | 目標虛擬位址空間中的指標 | 指標的值。 |
%N | DWORD_PTR (32 或 64 位,視 主機的 架構而定) | 主機虛擬位址空間中的指標 | 指標的值。 (這相當於標準 C %p 字元。 |
%I | ULONG64 | 任何 64 位值 | 指定的值。 如果此值大於0xFFFFFFFF則會列印為64位位址,否則會列印為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++) 評估的運算式。 如需詳細資訊,請參閱 數值表示式語法。
傳回值
沒有
言論
產生非常大的輸出字串時,可能會達到調試程式引擎或作系統的限制。 例如,某些版本的調試程式引擎對於單一輸出有 16K 個字元的限制。 如果您發現非常大的輸出遭到截斷,您可能需要將輸出分割成多個要求。
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | wdbgexts.h (include Wdbgexts.h, Dbgeng.h) |