В моей системе (Ubuntu 64) тоже происходит сбой.
Полагаю, это делает senss, потому что это то, что должен делать assert.
Я настоятельно советую вам использовать что-то вроде:
if(error){mexErrMsgTxt("assert failed\n");}
В противном случае у одного из моих друзей есть следующий трюк (с инструкциями препроцессора):
#define assert( isOK ) ( (isOK) ? (void)0 : (void) mexErrMsgTxt("assert failed\n") )
Для печати отдельных строк ошибок, например, myassert(A=B,"A not B")
, вы можете немного улучшить это:
#define myassert( isOK,astr ) ( (isOK) ? (void)0 : (void) mexErrMsgTxt(astr) )
Он также сказал мне, что вы можете импровизировать, используя что-то вроде:
#isOK,__LINE__,__PRETTY_FUNCTION__, __FILE__
... для печати номера строки и т. Д.