【问题标题】:Weird MEX-file behavior奇怪的 MEX 文件行为
【发布时间】:2011-10-03 04:50:26
【问题描述】:

发生了一些奇怪的事情。我用 MATLAB R2011 创建了一个 MEX 文件,然后用 Visual Studio 2010 编译了它。

我能够正确使用工作区中的 MEX 文件。 然后,我在 MATLAB m 文件中使用 MEX 文件(多次调用 MEX 文件)。当我尝试运行它时,MATLAB 崩溃并要求我关闭。

试图分析错误,我放了断点,但是当我在m文件中放断点时,一切都是正确的。实际上我运行所有m文件的方法是在函数末尾放一个断点并运行正常,我也可以完成所有m文件而不会出错。

但是当我尝试在没有断点的情况下运行它时,MATLAB 崩溃了...

一开始我以为可能是内存,但是为什么断点可以正常工作呢?

如果你能给我一个解决这个问题的线索,我将不胜感激。

提前致谢

杰西卡

【问题讨论】:

标签: c debugging matlab crash mex


【解决方案1】:

对我来说也像是记忆问题。正如 Laurent 所提到的,一些代码会有所帮助。

如果可以重现崩溃,我建议调试 c 代码本身。确保运行 mex 文件的调试版本,在代码中设置断点,从 Visual Studio (ALt+Ctrl+p) 附加到 Matlab 进程,并从 Matlab 调用 mex 文件。

【讨论】:

    【解决方案2】:

    我也认为是内存问题。

    也许,当您通过调试器启动 mex 文件时,内存的处理方式不完全相同,或者问题发生在您的函数返回后。

    您应该尝试使用this environment 启动matlab 以方便调试。

    请注意,内存损坏会使Matlab错误的Mex 函数后崩溃。 这意味着您可能正在调试错误的函数。

    如需进一步帮助,我需要查看您的代码;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-15
      • 2015-12-09
      • 2015-01-12
      相关资源
      最近更新 更多