Impedire l’arresto anomalo di un file MEX in MATLAB

Ho un file MEX che ho “preso in prestito” da qualcun altro per aiutarmi a codificare un algoritmo di rilevamento nucleare semi-automatico. Il problema è che il file MEX causa sporadicamente un errore di segmentazione. Tuttavia, se il codice viene eseguito con gli stessi parametri una seconda volta, va bene.

Speravo che esistesse una specie di idioma try/catch per i file MEX, ma dopo aver trascorso la maggior parte del mio sabato alla ricerca di qualcosa, non riuscivo a trovare nulla.

Qualsiasi aiuto su questo argomento sarebbe fantastico! Altrimenti, dovrò portare il file .cpp in MATLAB (e sono circa 10.000 linee che usano centinaia di dipendenze :-().

Quale piattaforma stai usando? Esistono metodi per aiutare a eseguire il debug dei file MEX. Ogni volta che c’è un errore di segmentazione, puoi usare un IDE per dirti dove si trova il codice in crash.

Ecco le istruzioni per Mac OS: http://www.mathworks.com/help/matlab/matlab_external/debugging-on-mac-platforms.html

Ecco le istruzioni per Linux: http://www.mathworks.com/help/matlab/matlab_external/debugging-on-linux-platforms.html

Ecco le indicazioni per Windows: http://www.mathworks.com/help/matlab/matlab_external/debugging-on-microsoft-windows-platforms.html

NB: Sono contrario a riferire l’OP a un collegamento esterno al sito per aiutare con la sua domanda. Di solito includo la maggior parte della risposta nei miei post e fornisco link come riferimenti. Dato che non mi hai detto quale piattaforma stai usando, non scriverò soluzioni per tutte le piattaforms poiché ci vorrà troppo tempo. In quanto tale (e sto pregando che i collegamenti siano stabili per un lungo periodo), puoi fare riferimento al link appropriato per la tua piattaforma.