Debugging Tools for Windows

OutputPromptVaList

The OutputPromptVaList and OutputPromptVaListWide methods format and send a user prompt to the output callback objects.

HRESULT
  IDebugControl::OutputPromptVaList(
    IN ULONG  OutputControl,
    IN OPTIONAL PCSTR  Format,
    IN va_list  Args
    );

HRESULT
  IDebugControl4::OutputPromptVaListWide(
    IN ULONG  OutputControl,
    IN OPTIONAL PCWSTR  Format,
    IN va_list  Args
    );

#ifdef UNICODE
#define OutputPromptVaListT OutputPromptVaListWide
#else
#define OutputPromptVaListT OutputPromptVaList
#endif

Parameters

OutputControl
Specifies an output control that determines which of the client's output callbacks will receive the output. For possible values, see DEBUG_OUTCTL_XXX.
Format
Specifies the format string, as in printf. Typically, conversion characters work exactly as they do in C. For the floating-point conversion characters, the 64-bit argument is interpreted as a 32-bit floating-point number unless the l modifier is used.

The %p conversion character is supported, but it represents a pointer in a target's address space. It might not have any modifiers and it uses the debugger's internal address formatting. The following additional conversion characters are supported.

Character Argument type Argument Text printed
%p ULONG64 Pointer in an address space. The value of the pointer.
%N DWORD_PTR (32 or 64 bits, depending on the host's architecture) Pointer in the host's virtual address space. The value of the pointer. (This is equivalent to the standard C %p character.)
%I ULONG64 Any 64-bit value. The specified value. If this is greater than 0xFFFFFFFF, it is printed as a 64-bit value; otherwise, it is printed as a 32-bit value.
%ma ULONG64 Address of a NULL-terminated ASCII string in the process's virtual address space. The specified string.
%mu ULONG64 Address of a NULL-terminated Unicode string in the process's virtual address space. The specified string.
%msa ULONG64 Address of an ANSI_STRING structure in the process's virtual address space. The specified string.
%msu ULONG64 Address of a UNICODE_STRING structure in the process's virtual address space. The specified string.
%y ULONG64 Address in the process's virtual address space of an item with symbol information. String that contains the name of the specified symbol (and displacement, if any).
%ly ULONG64 Address in the process's virtual address space of an item with symbol information. String that contains the name of the specified symbol (and displacement, if any), as well as any available source line information.

If Format is NULL, only the standard prompt text is sent to the output callbacks.

Args
Specifies additional parameters that represent values to be inserted into the output during formatting. Args must be initialized using va_start. This method does not call va_end.

Return Value

S_OK
The method was successful.

This method can also return error values. See Return Values for more details.

Interface Version

OutputPromptVaList is available in all versions of IDebugControl. OutputPromptVaListWide is available in IDebugControl4 and later versions.

Comments

OutputPromptVaList and OutputPromptVaListWide can be used to prompt the user for input.

The standard prompt will be sent to the output callbacks before the formatted text described by Format. The contents of the standard prompt is returned by the method GetPromptText.

The prompt text is sent to the output callbacks with the DEBUG_OUTPUT_PROMPT output mask set.

For more information about prompting the user, see Using Input and Output.

Requirements

Headers: Defined in Dbgeng.h. Include Dbgeng.h. The macros va_list, va_start, and va_end are defined in Stdarg.h.

See Also

OutputPrompt, GetPromptText, ControlledOutputVaList, DEBUG_OUTPUT_XXX

Build machine: CAPEBUILD