Assert

Debugging macro that halts program execution if an expression is evaluated 
to 0 (false).

Syntax
   #define Assert(expression) If (expression) = 0 Then : fb_Assert( __FILE__
   , __LINE__, __FUNCTION__, #expression ) : End If

Usage
   Assert( expression )

Parameters
   expression
      Any valid conditional/numeric expression.  If expression evaluates to 
      0 (i.e. "false"), execution is halted.

Description
   The Assert macro is intended for use in debugging and works only if the 
   -g or -eassert option is specified on the fbc command line. In this case 
   it prints an error message and stops the program execution if expression 
   evaluates to 0.

   Its normal use is to check the correct value of the variables or 
   expressions during debugging.

   If -g and -eassert are not passed to fbc, the macro does not generate 
   any code, and has no effect.

   Note: If an Assert fails while the program is in a graphics Screen, the 
   error message will not be visible as it will be printed to the graphics 
   screen, which will be closed immediately after.

Example
   Sub foo
    Dim a As Integer
    a=0
    Assert(a=1)
   End Sub

   foo 

   '' If -g or -eassert is used, this code stops with: test.bas(3): assertion failed at FOO: a=1 

Dialect Differences
   * Not available in the -lang qb dialect unless referenced with the 
     alias __ASSERT.

Differences from QB
   * New to FreeBASIC

See also
   * #assert
   * AssertWarn
   * Compiler Option: -eassert
   * Compiler Option: -g

