IDebugControl::OutputVaList 方法 (dbgeng.h)
OutputVaList 方法格式化字符串,并将结果发送到向引擎客户端注册的 输出回调。
语法
HRESULT OutputVaList(
[in] ULONG Mask,
[in] PCSTR Format,
[in] va_list Args
);
参数
[in] Mask
指定输出类型位字段。 有关可能的值,请参阅 DEBUG_OUTPUT_XXX。
[in] Format
指定格式字符串,如 printf中所示。 通常,转换字符的工作方式与 C 中的转换字符完全相同。对于浮点转换字符,除非使用 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] Args
指定其他参数,这些参数表示在格式设置过程中要插入到输出中的值。 必须使用 va_start初始化 Args。 此方法不调用 va_end。
返回值
此方法也可能返回错误值。 有关详细信息,请参阅 返回值。
返回代码 | 描述 |
---|---|
|
该方法成功。 |
言论
生成非常大的输出字符串时,可能会达到调试器引擎或作系统的限制。 例如,某些版本的调试器引擎对单个输出具有 16K 个字符的限制。 如果发现非常大的输出被截断,则可能需要将输出拆分为多个请求。
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | dbgeng.h (包括 Dbgeng.h、Stdarg.h) |