2016-06-08 55 views
3

我在Linux上運行MATLAB,並在我的主目錄中有有限的存儲空間(/home/$USER)。當MATLAB崩潰時,它將崩潰轉儲文件(matlab_crash_dump.XXXX)放置在我的主目錄中。我想更改放置這些文件的目錄。做這個的最好方式是什麼?指定MATLAB崩潰轉儲文件的輸出目錄

+0

哪個版本的matlab,哪個linux版本庫? –

+0

matlab版本:matlab/R2013a Linux是:紅帽企業Linux服務器版本5.11,linux repo是/ home/$ USER以外的任何其他版本。 – Pratul

回答

2

您需要指定MATLAB_LOG_DIR環境變量。 MATLAB將使用它來存儲所有崩潰轉儲。

related MATLAB Central discussion

如果已設置環境變量$ MATLAB_LOG_DIR,這就是 我們寫崩潰轉儲文件。否則,請在UNIX上查看$ HOME,或在$ TEMP,$ TMP,$ WINDIR中查找 ,最後在Windows上查看C:\(按此順序)。 該文件將被命名爲「matlab_crash_dump。$ pid」,其中$ pid是MATLAB的 進程ID。

您可以您.bashrc文件中做到這一點

export MATLAB_LOG_DIR=/custom/dir 

或在MATLAB運行的任何命令之前本身(或在您的matlabrc file

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]); 
} 
+0

非常感謝您的回答,一個問題:我必須初始化'MATLAB_LOG_DIR'環境變量還是預先定義在庫中,我可以直接在'matlabrc'中使用它 - setenv('MATLAB_LOG_DIR','/ custom/dir')?? – Pratul

+0

@Pratul它最初沒有定義,如果沒有定義,它將使用你的主目錄。如果定義它們,它將使用它。 – Suever

+0

當然,只需設置一切,以嘗試一下。 – Pratul