Debugging Tools for Windows |
The ControlledOutputVaList and ControlledOutputVaListWide methods format a string and send the result to output callbacks that were registered with some of the engine's clients.
HRESULT
IDebugControl::ControlledOutputVaList(
IN ULONG OutputControl,
IN ULONG Mask,
IN PCSTR Format,
IN va_list Args
);
HRESULT
IDebugControl4::ControlledOutputVaList(
IN ULONG OutputControl,
IN ULONG Mask,
IN PCWSTR Format,
IN va_list Args
);
#ifdef UNICODE
#define ControlledOutputVaListT ControlledOutputVaListWide
#else
#define ControlledOutputVaListT ControlledOutputVaList
#endif
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. |
This method may also return error values. See Return Values for more details.
ControlledOutputVaList is available in all versions of IDebugControl. ControlledOutputVaListWide is available in IDebugControl4 and later versions.
When generating very large output strings, it is possible to reach the limits of the debugger engine or of the operating system. For example, some versions of the debugger engine have a 16K character limit for a single output. If you find that very large output is getting truncated, you might need to split your output into multiple requests.
Headers: Defined in Dbgeng.h. Include Dbgeng.h. The macros va_list, va_start, and va_end are defined in Stdarg.h.