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. |