當Mex函數產生分段錯誤時,彈出MATLAB系統錯誤窗口並選擇Attempt to Continue
會導致很多無用的調試信息被調入命令窗口。有沒有辦法在Matlab中捕捉MEX函數分割錯誤?
是否有可能在Matlab中捕獲這些mex-exceptions或至少能夠稍後處理它們?
不幸的是,以下傳統的try/catch將在此情況下工作:
try
myMex(input)
catch
error('Mex failed')
end
請注意,我不想catch the error inside the mex。
我不會這樣做。系統錯誤有一個原因表明您退出MATLAB並不會嘗試繼續。有一個很好的機會,你已經損壞了內存。如果您絕對需要嘗試保存一些數據,請僅使用嘗試繼續。 – chappjc 2015-02-05 18:22:27
是的,有很好的理由不這樣做。但我不打算在事後使用結果。我想調試我的C代碼並重新啓動matlab,並重新加載所有數據的每一個小小的變化是不實際的。 – JaBe 2015-02-05 18:28:35
使用調試器進行調試。附加到MATLAB。 [Windows](http://stackoverflow.com/a/27391300/2778484)(我使用這種方法,但你也可以告訴'mex'產生調試信息)或[Linux](http://www.mathworks。 COM/matlabcentral /答案/ 91741-如何-DO-調試-C-MEX-文件,下UNIX)? – chappjc 2015-02-05 18:46:34