首页 文章

指定MATLAB故障转储文件的输出目录

提问于
浏览
4

我在Linux上运行MATLAB,在我的主目录( /home/$USER )中存储空间有限 . 当MATLAB崩溃时,它会将故障转储文件( matlab_crash_dump.XXXX )放在我的主目录中 . 我想更改放置这些文件的目录 . 做这个的最好方式是什么?

1 回答

  • 2

    您需要指定 MATLAB_LOG_DIR 环境变量 . MATLAB将使用它来存储所有故障转储 .

    来自related MATLAB Central discussion

    如果已设置环境变量$ MATLAB_LOG_DIR,那么我们将编写故障转储文件 . 否则,在UNIX上查看$ HOME,或在Windows上查看$ TEMP,$ TMP,$ WINDIR,最后是C:\(按此顺序) . 该文件将命名为“matlab_crash_dump . $ pid”,其中$ pid是MATLAB的进程ID .

    您可以在 .bashrc 文件中执行此操作

    export MATLAB_LOG_DIR=/custom/dir
    

    或者在运行任何命令之前(或在matlabrc file内)在MATLAB中

    setenv('MATLAB_LOG_DIR', '/custom/dir')
    

    如果您需要对此进行测试,则以下简单的mex文件将导致崩溃,从而导致崩溃转储文件 .

    #include "mex.h"
    
    void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] )
    {
        /* Access beyond the length of prhs */
        size_t x = mxGetM(prhs[6]);
    }
    

相关问题