Chapter 3. Debugging

There are the following debugging services:

Service Description
_Assert_Range Validates a pointer to any structure
Clear_Mono_Screen Clears the secondary display.
Debug_Convert_Hex_Binary Converts hexadecimal to binary.
Debug_Convert_Hex_Decimal Converts a number to decimal.
_Debug_Flags_Service Asserts various conditions.
_Debug_Out_Service (Windows 95 and later) Sends a null-terminated ASCII string to the debugging device and stops the debugger if one is running.
_Debug_Printf_Service (Windows 95 and later) Prints a C-style formatted string to the debugging device.
Debug_Test_Cur_VM Asserts that EBX is the current VM handle.
Debug_Test_Valid_Handle Asserts that EBX is a valid VM handle.
Disable_Touch_1st_Meg Disables the first megabyte of memory.
Enable_Touch_1st_Meg Enables the first megabyte of memory.
Get_Debug_Options Checks for command-line debugging options.
Get_Mono_Chr Gets the character/attribute from the secondary display.
Get_Mono_Cur_Pos Gets the cursor position from the secondary display.
In_Debug_Chr Reads one character from the debugging device.
Is_Debug_Chr Checks if a character is ready on the debugging device.
Log_Proc_Call Logs the caller of the current procedure.
Out_Debug_Chr Writes one character to the debugging device.
Out_Debug_String (Windows 3.1x) Writes a string to the debugging device with optional embedded parameters.
Out_Mono_Chr Writes one character to the secondary display.
Out_Mono_String Writes a string to the secondary display.
Queue_Debug_String Queues a debugging string.
Set_Mono_Cur_Pos Sets the cursor position for the secondary display.
Test_Reenter Asserts that VMM has not been re-entered.
_Trace_Out_Service (Windows 95 and later) Writes a null-terminated ASCII string to the debugging device.
Validate_Client_Ptr Validates the client register pointer.