The DI(exprn) checks that the exprn is true in the same way as assert(3). It is however implemented by generating debugger commands from the source code and so only works if you run the command under a debugger after source the command file generated by nana(1).
exprn - the expression to be checked.
guard - the expression is normally only checked if the guard is true.
handler - a macro which generates the code that handles the error condition.
param - a parameter which can be passed off to the handler. This can be used for identifying the assertion failure in a space-efficent manner, e.g. by copying it into a register before aborting.
See nana.info for details on configuring the behaviour on error detection, etc. You also need to include the nana library by using -lnana if you use the default setup.
In addition to the DI, DIG, etc DI.h also provides DN, DNG, etc which are used to check that an expression is never true.
AUTHORPhil Maker <[email protected]>