2

我有一个与调试 .mex32/.mex64 文件有关的问题。假设现在我有一个名为 test.cpp 的文件:

#include "mex.h" 
#include <iostream>
void mexFunction(int nlhs, mxArray *plhs[],
    int nrhs, const mxArray *prhs[])
{
    mexPrintf("Hello Matlab, and this is a test program\n"); 
} 

然后我可以使用 Visual Studio 2010 编译和构建。然后test.mex64在 matlab 中,我可以编写以下脚本来测试该功能:

clc; 
test;

现在假设我要调试 test.mex64 函数,我该怎么办?已采用以下程序,但未通过:

  1. mexPrintf用 VS2010在行的乞求处切换断点。
  2. 使用 VS2010 从 Debug->Attach to Process... 选择 MATLAB.exe。
  3. 运行 MATLAB 脚本clc; test;

我得到的错误信息如下:

The breakpoint will not currently be hit. No symbols have been loaded for this document. 
4

2 回答 2

2

您是否使用调试选项“-g”构建了 mex 文件?

于 2012-11-28T21:58:49.113 回答
1

我找到了解决方案:当我创建 .mexw64 函数(在我们的例子中为 test.mexw64)时,我将它复制到了 MATLAB 工作目录。为了调试这个函数,将 test.pdb 文件复制到 MATLAB 工作目录也很重要。完成后,我可以调试。

于 2012-11-29T08:54:50.527 回答