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. mexPrintfVS2010 では、行頭でブレークポイントをトグルします。
  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 に答える