如何调试Matlab / Simulink?

时间:2013-08-23 12:31:02

标签: matlab debugging dll simulink mex

我有一个使用s_function的Simulink模型,它是一个mexw32文件。 s_function块也使用.lib模块。现在,当我试图在模拟结束之前运行模型Matlab崩溃并且在命令窗口中没有任何错误。如果Matlab崩溃,我有哪些调试选项?

2 个答案:

答案 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可执行文件已链接到外部库。因此,您可能还需要检查问题的来源。