我有一个使用s_function
的Simulink模型,它是一个mexw32
文件。 s_function
块也使用.lib
模块。现在,当我试图在模拟结束之前运行模型Matlab崩溃并且在命令窗口中没有任何错误。如果Matlab崩溃,我有哪些调试选项?
答案 0 :(得分:1)
这是导致错误的S函数编写错误的典型行为。使用http://www.mathworks.com/support/solutions/en/data/1-3KK6RK/
中列出的步骤对其进行调试答案 1 :(得分:1)
我不了解Simulink或S-functions(从未使用过它们),但通常当MEX文件发生段错误时,MATLAB会在大多数情况下从中恢复,显示堆栈跟踪并将您置于“需要重启MATLAB“命令提示符模式。您将在系统%TMP%
文件夹中找到崩溃转储和错误日志文件。
正如其他人所说,如果您可以访问MEX函数的源代码,请使用调试符号重新编译它,将调试器附加到MATLAB,在调试器中放置断点,并通过调用它来启动MEX函数MATLAB。进入C代码后,逐步调试代码,直到找到问题为止。
以下是更详细地描述此过程的相关doc page。
您提到您的MEX可执行文件已链接到外部库。因此,您可能还需要检查问题的来源。