BlitzMax/Language/Debugging

From Wikibooks, open books for an open world
Jump to navigation Jump to search

BlitzMax provides several commands to help with debugging your programs:

  • DebugStop - In debug mode, causes the program to stop executing and activates the debugger. In release mode, no effect.
  • DebugLog StringExpression - In debug mode, causes StringExpression to be printed to the debugger output window. In release mode, no effect.
  • RuntimeError StringExpression - Causes a runtime error exception (see: exceptions) to be thrown with the specified string.
  • Assert Expression Else StringExpression - In debug mode, causes a RuntimeError if Expression evaluates to false. No effect in release mode.

Assert is particularly useful for validating function arguments. For example:

Function SetAlpha( alpha# )
Assert alpha>=0 And alpha<=1 Else "Alpha value out of range"
'rest of function here...
End Function

However, since asserts are taken out in release mode, be careful that your asserts don't have any 'side effects' - code that may affect the execution of the program.