IDebugControl4::OutputVaListWide 方法 (dbgeng.h)

OutputVaListWide 方法格式化字符串,并将结果发送到向引擎客户端注册的输出回调

语法

HRESULT OutputVaListWide(
  [in] ULONG   Mask,
  [in] PCWSTR  Format,
  [in] va_list Args
);

参数

[in] Mask

指定输出类型位字段。 有关可能的值 ,请参阅DEBUG_OUTPUT_XXX

[in] Format

指定格式字符串,如 在 printf 中所示。 通常,转换字符的工作方式与在 C 中完全相同。对于浮点转换字符,64 位参数被解释为 32 位浮点数,除非使用 l 修饰符。

支持 %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] Args

指定其他参数,这些参数表示在格式设置期间要插入到输出中的值。 必须使用 va_start 初始化参数。 此方法不调用 va_end

返回值

此方法也可能返回错误值。 有关更多详细信息 ,请参阅返回值

返回代码 说明
S_OK
方法成功。

注解

生成非常大的输出字符串时,可能会达到调试器引擎或操作系统的限制。 例如,某些版本的调试器引擎对单个输出有 16K 字符限制。 如果发现非常大的输出被截断,可能需要将输出拆分为多个请求。

要求

要求
目标平台 桌面
标头 dbgeng.h (包括 Dbgeng.h、Stdarg.h)

另请参阅

ControlledOutputVaList

IDebugControl4

输出

dprintf