Во-первых, try / catch не поймает нарушение сегментации.Он перехватывает только исключения C ++, а не такие сигналы, как sigsegv.
Во-вторых, чтобы «использовать» MATLAB_MEM_MGR
:
- Установите для переменной среды
MATLAB_MEM_MGR
значение «отладка» в оболочке ОС (например, в командной строке в Windows или в терминале).в Unix), - Запустите MATLAB из той же оболочки,
- Запустите вашу MEX-функцию из этого MATLAB как обычно.
As Q3.5 в FAQ говорит, что если MEX-функция повреждает память, например, записывая после конца выделенного MATLAB блока памяти, MATLAB сообщит о повреждении при освобождении блока памяти.
Вместо этого вы можете попробовать запустить вашу MEX-функцию под отладчиком. Эта техническая заметка имеет несколько ссылок, описывающих, как это сделать на различных платформах.
EDIT : предыдущая ссылка не работает, вот последняя страница документа .