当Mex函数产生分段错误时,会弹出一个MATLAB系统错误窗口,选择Attempt to Continue
会导致大量无用的调试信息被清除到命令中窗口。
是否有可能在Matlab中捕获这些mex异常,或者至少能够在以后处理它们?
不幸的是,在这种情况下,遵循传统的try / catch不会起作用:
try
myMex(input)
catch
error('Mex failed')
end
请注意,我不想catch the error inside the mex。
答案 0 :(得分:1)
如果您有源代码,可以使用调试模式(-g
标志)编译mex
然后,根据您的平台,您可以在调试模式下运行mex(查看Troubleshoot MEX-Files on MATLAB docs)
如果您在Windows中运行,则可以使用Visual Studio并选择debug-> Attach to Process并选择MATLAB。然后你可以运行你的mex文件,这将在VS而不是MATLAB中触发异常(和断点)。