2012-11-28 2 views
2

.mex32/.mex64 파일 디버깅과 관련된 질문이 있습니다.Visual Studio 2010에서 MATLAB .mex32/.mex64 파일을 디버깅하는 방법

clc; 
test; 
:

#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"); 
} 

그때 컴파일하고 MATLAB에서 비주얼 스튜디오 2010.Then와 test.mex64을 구축 할 수 있습니다, 내가 기능을 테스트하기 위해 다음과 같은 스크립트를 작성할 수 있습니다 : 나는라는 파일 Test.cpp에이 지금 가정

이제 test.mex64 함수를 디버깅하고 싶습니다. 어떻게해야합니까? 사용자가 다음 절차를 채택했지만 실패했습니다.

  1. VS2010을 사용하는 mexPrintf의 구걸시 중단 점을 전환합니다.
  2. 디버그 -> 연결 프로세스 ...에서 VS2010을 사용하면 MATLAB.exe를 선택하십시오.
  3. 실행 MATLAB 스크립트는 다음과 같이 clc; test;

내가받은 오류 메시지는 다음과 같습니다

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

[이 질문] (http://stackoverflow.com/questions/11220250/how-do-i-profile-a-mex-function-in-matlab/12405131#12405131)을 참조하십시오. 그것은 리눅스에서 mex를 프로파일 링하는 것을 다룬다. 그러나 비슷한 아이디어가 윈도우에서 사용되어야한다. 틀림없이 프로파일 링은 약간 다르지만 여기서 시작할 수 있습니다. – angainor

답변

1

해결책을 찾았습니다. 우리의 .mexw64 함수 (여기서는 test.mexw64)를 만들 때 MATLAB 작업 디렉토리에 복사했습니다. 이 함수를 디버깅하려면 test.pdb 파일을 MATLAB 작업 디렉토리로 복사하는 것이 중요합니다. 그 후, 나는 디버그 할 수있다.

2

은 "-g"디버그 옵션을 사용하여 MEX 파일을 빌드나요?

관련 문제