MATLAB2017b运行程序令MATLAB崩溃问题出现及解决
令MATLAB崩溃的log大致如下:
MATLAB crash file:C:\Users\11327\AppData\Local\Temp\matlab_crash_dump.4080-1:
。。。。此处省下很多log。。。
Abnormal termination:
Access violation
Register State (from fault):
RAX = 0000000000000000 RBX = 0000000000000000
RCX = 00000000fc621a20 RDX = 00000000043fada0
RSP = 00000000043f9038 RBP = 00000000043f9ea1
RSI = 00000000043fada0 RDI = 0000000000000048
R8 = 00000000043f9f10 R9 = 00000000fc621a20
R10 = 0000000000000000 R11 = 00000000043fada0
R12 = 0000000000000001 R13 = 0000000000000000
R14 = 00000000043fada0 R15 = 00000000fc621a20
RIP = 0000000010a7fb57 EFL = 00010206
。。。。此处省下很多log。。。
This error was detected while a MEX-file was running. If the MEX-file
is not an official MathWorks function, please examine its source code
for errors. Please consult the External Interfaces Guide for information
on debugging MEX-files.
If this problem is reproducible, please submit a Service Request via:
/
A technical support engineer might contact you with further information.
首先我觉得,是因为写程序的MATLAB版本和我现在使用的MATLAB版本不一样。
然后开始说解决:
老师看了 一眼说
%这个是我自己的工作目录,中间省了一大堆中间路径,反正就是最后这个文件有问题,需要重新编译。
E:\work\...\glmnet_matlab\glmnetMex.mexw64
这个文件出错了。需要mex命令重新编译。然后我就去寻找重新编译的方法。结果直接搜索重新编译命令,看不懂,也不知道该怎么改。赶紧查看mex文档学习mex命令。
简单看了命令后就编译。命令
mex filenames
果然编译出错了,出错信息:
错误使用 mex
文件扩展名 '.mexw64' 未知。然后找了同.F文件编译,然后重新出错,说我没有SDK编译器,但其实我是有的。
然后matlab运行已知的程序还是崩溃,目测根本不是因为程序里的图像处理导致内存溢出(图片不多,计算量也不是很大)。然后我放置了一段时间。在这段时间里,我用学校的电脑配置了matlab2019,然后运行那段已知的程序,然后matlab并没有发生崩溃错误,反而是正确运行,出现了正确的结果。所以这里基本可以判定此次matlab崩溃问题由matlab版本导致(具体的由matlab内部的什么东西导致的原因还未知)为了更进一步验证确实是matlab版本导致matlab崩溃,我在发生matlab崩溃的那台电脑上进行的操作。
首先程序保存,保留发生崩溃问题的状态。然后把2017版本卸载了,安装一个2019版本的matlab。最后直接打开程序运行,发现并没有发生matlab崩溃问题。so,完全验证了本文开头描述的问题,是由matlab本身导致。
完。
发布评论