Products & Services Industries Academia Support User Community Company

Learn more about MATLAB   

mxAssert (C) - Check assertion value for debugging purposes

C Syntax

#include "matrix.h"
void mxAssert(int expr, char *error_message);

Arguments

expr

Value of assertion

error_message

Description of why assertion failed

Description

Similar to the ANSI C assert macro, mxAssert checks the value of an assertion, and continues execution only if the assertion holds. If expr evaluates to logical 1 (true), mxAssert does nothing. If expr evaluates to logical 0 (false), mxAssert prints an error to the MATLAB command window consisting of the failed assertion's expression, the filename and line number where the failed assertion occurred, and the error_message string. The error_message string allows you to specify a better description of why the assertion failed. Use an empty string if you don't want a description to follow the failed assertion message.

For information about MATLAB behavior after a failed assertion, see Abnormal Termination in the Desktop Tools and Development Environment documentation.

The mex script turns off these assertions when building optimized MEX-functions, so use this for debugging purposes only. Build the MEX-file using the syntax mex -g filename in order to use mxAssert.

Assertions are a way of maintaining internal consistency of logic. Use them to keep yourself from misusing your own code and to prevent logical errors from propagating before they are caught; do not use assertions to prevent users of your code from misusing it.

Assertions can be taken out of your code by the C preprocessor. You can use these checks during development and then remove them when the code works properly, letting you use them for troubleshooting during development without slowing down the final product.

  


Recommended Products

Includes the most popular MATLAB recorded presentations with Q&A sessions led by MATLAB experts.

 © 1984-2009- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS