#DEBUG PRINT metastatement

Purpose | Display information in the IDE's Debugger Output Window
Syntax | #DEBUG PRINT string_expression

Remarks

The PRINT option allows the programmer to display arbitrary information in the IDE's Debug Output Window during a debugging session. The output window is provided by debugger to display status information about the state of the debugging session; however, #DEBUG PRINT provides a convenient way of creating a "process log" of a Sub/ Function/ Method/ Property/ Variable as the program runs. Combined with FUNCNAME$, #DEBUG PRINT can be a useful tool for debugging application code. See the Example below.

This is possible because the Debugger Output Window has a scrollable range somewhat like a console window, whereas the Watch Window shows only the instantaneous value of a variable.

#DEBUG PRINT statements are ignored when code is compiled into a standalone (EXE/ DLL) file; they are only included when using the Debugger. Control codes in the string are translated into hex format in the output window. For example, embedded CHR$(0) or $NUL bytes are displayed as "<00>".

Restrictions | You may use Unicode strings with #DEBUG PRINT, but the results will always be converted to ANSI by Windows. This is a Windows design limitation, not a limitation of PowerBASIC.
See also | Debugging, #DEBUG ERROR, FUNCNAME$

Example

FUNCTION PBMAIN() AS LONG

Arg1% = 10000

Arg2% = 20000

CALL MySub(Arg1%, Arg2%)

CALL MySub(Arg2%, Arg1%)

#DEBUG PRINT "Done!"

END FUNCTION

SUB MySub(Arg1%, Arg2%)

#DEBUG PRINT "We're in " & FUNCNAME$

#DEBUG PRINT "Arg2% is" & STR$(Arg2%)

END SUB

Result | We're in MYSUB Arg2% is 20000 We're in MYSUB Arg2% is 10000 Done!