【问题标题】:MATLAB crashes when executing a mex fileMATLAB 在执行 mex 文件时崩溃
【发布时间】:2013-06-04 21:46:13
【问题描述】:

我正在尝试运行在 MATLAB 中使用 mex 文件的代码(由某人发送给我)。我已经设法编译了 mex 文件,但是当我运行调用这些文件的代码时,我得到了如下所示的错误。我不太确定这里发生了什么,所以任何帮助将不胜感激。

Segmentation violation detected at Mon Sep 10 16:26:11 2012
------------------------------------------------------------------------

Configuration:
  Crash Decoding  : Disabled
  Current Visual  : 0x22 (class 4, depth 24)
  Default Encoding: UTF-8
  GNU C Library   : 2.11.3 stable
  MATLAB Root     : /cae/apps/data/matlab-2012a
  MATLAB Version  : 7.14.0.739 (R2012a)
  Operating System: Linux 3.2.0-0.bpo.2-amd64 #1 SMP Fri Jun 29 20:42:29 UTC 2012 x86_64
  Processor ID    : x86 Family 6 Model 42 Stepping 7, GenuineIntel
  Virtual Machine : Java 1.6.0_26-b03 with Sun Microsystems Inc. Java HotSpot(TM) 64-Bit Server VM mixed mode
  Window System   : The X.Org Foundation (11006000), display localhost:10.0

Fault Count: 1


Abnormal termination:
Segmentation violation

【问题讨论】:

    标签: matlab error-handling mex


    【解决方案1】:

    MEX 代码中肯定存在错误。两种可能: 1.错误是错误检查不足,并且您正在使用无效的参数(错误的类型,大小,顺序等)调用函数 2. 如果您使用的是在作者机器上工作的一组经过确认的参数,那么可能代码不可移植,并且做出了错误的假设(32/64 位、Windows/Linux 等)

    第 1 步:检查您的论点,如果可能,请使用已在作者计算机上验证的最小测试集。

    第 2 步:通过调试器运行相同的代码: http://www.mathworks.com/help/matlab/matlab_external/debugging-c-c-language-mex-files.html 这将有助于隔离崩溃的位置。然后修复代码:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-06
      • 1970-01-01
      • 2016-01-13
      • 1970-01-01
      • 1970-01-01
      • 2011-08-24
      • 1970-01-01
      • 2015-10-02
      相关资源
      最近更新 更多