在MATLAB中调用MEX函数,通过Visual C++2010单步调试MEX文件
步骤:
[1]利用-g选项编译MEX文件
本节利用testmexvc.c实例程序,其代码如下所示:
#include "mex.h"
void mexFunction(intnlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
printf("HelloWorld\n");
mexPrintf("Hello\n");
}
在VC++2010中调试MEX文件,需要用-g选项编译MEX文件,如下所示:
mex testmexvc.c –g
生成:两文件,其中testmexvc.mexw32.pdb主要用于VC单步调试使用。
[2]打开VC++2010,然后选择Tools--------Attach To Process菜单项,如图所示
[3]在弹出的对话框中选择MATLAB进程,然后单击Attach按钮确定,如下图所示
[4]选择File-----Open File菜单项打开待调试的文件testmexvc.c,在testmexvc.c文件中设置断点,如下面所示:
[5]在MATLAB命令行窗口中运行待调试的MEX文件testmexvc,程序运行到断点的位置便会暂停,用户可以根据需要对程序进行调试,如下图所示:
注:(1)[3]、[4]步骤可以互换
(2)若MEX文件中调用了其他C/C++文件,也可对C/C++文件进行单步调试。如libsvm工具箱中的svm_model_matlab与svmtrain调用的svm.cpp文件。