有没有办法在Matlab中捕获MEX功能分段故障?

时间:2015-02-05 13:53:30

标签: matlab segmentation-fault try-catch mex

当Mex函数产生分段错误时,会弹出一个MATLAB系统错误窗口,选择Attempt to Continue会导致大量无用的调试信息被清除到命令中窗口。

是否有可能在Matlab中捕获这些mex异常,或者至少能够在以后处理它们?

不幸的是,在这种情况下,遵循传统的try / catch不会起作用:

try
   myMex(input)
catch
   error('Mex failed')
end

请注意,我不想catch the error inside the mex

1 个答案:

答案 0 :(得分:1)

如果您有源代码,可以使用调试模式(-g标志)编译mex 然后,根据您的平台,您可以在调试模式下运行mex(查看Troubleshoot MEX-Files on MATLAB docs) 如果您在Windows中运行,则可以使用Visual Studio并选择debug-> Attach to Process并选择MATLAB。然后你可以运行你的mex文件,这将在VS而不是MATLAB中触发异常(和断点)。