이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

Microsoft Windows 플랫폼에서 디버그하기

이 예제에서는 Microsoft® Visual Studio® 2012를 사용하여 matlabroot/extern/examples/mex/ 폴더에 있는 yprime.c를 디버그하는 방법을 보여줍니다. 다른 버전을 사용 중인 경우에는 해당하는 Microsoft 문서를 참조하십시오.

  1. C 컴파일러가 Visual Studio로 선택되어 있는지 확인하십시오.

    cc = mex.getCompilerConfigurations('C','Selected');
    cc.Name
    ans =
    
    Microsoft Visual C++ 2012 (C)
    
  2. 디버그 기호가 포함된 파일을 빌드하는 -g 옵션으로 소스 MEX 파일을 컴파일합니다. 예를 들어, 다음과 같이 입력합니다.

    copyfile(fullfile(matlabroot,'extern','examples','mex','yprime.c'),'.','f')
    mex -g yprime.c

  3. Visual Studio를 시작합니다. MATLAB® 세션을 종료하지 마십시오.

  4. Visual Studio 도구(Tools) 메뉴에서 프로세스에 연결(Attach to Process)을 선택합니다.

  5. 프로세스에 연결 대화 상자에서 MATLAB 프로세스를 선택하고 연결(Connections)을 클릭합니다.

    Visual Studio가 데이터를 불러온 다음 빈 코드 창을 표시합니다.

  6. 파일(File) > 열기(Open) > 파일(File)을 선택하여 소스 파일 yprime.c를 엽니다. 폴더 c:\work에서 yprime.c를 찾습니다.

  7. 원하는 코드 라인을 마우스 오른쪽 버튼으로 클릭하고 상황별 메뉴에서 중단점(Breakpoint) > 중단점 삽입(Insert Breakpoint)을 따라 중단점을 설정합니다. 게이트웨이 루틴의 시작 부분에서 중지하도록 mexFunction에 중단점을 설정하는 것이 편리할 때가 많습니다.

    실행 파일을 아직 실행하지 않았다면 코드 라인 옆에 중단점과 함께 나타나는 “!” 아이콘은 그냥 무시하면 됩니다.

    중단점에 다다르면 디버거에서 제공하는 모든 명령을 온전히 사용하여 변수를 검사하거나 메모리를 표시하거나 레지스터를 검사할 수 있습니다.

  8. MATLAB을 열고 다음을 입력합니다.

    yprime(1,1:4)

    첫 번째 중단점에 다다르면 Visual Studio 디버거에서 yprime.c가 열립니다.

  9. 디버그(Debug) > 계속(Continue)을 선택하면 MATLAB이 다음을 표시합니다.

    ans =
    
        2.0000    8.9685    4.0000   -1.0947
    

    Visual Studio 환경에서 디버그하는 방법에 대한 자세한 내용은 Microsoft 문서를 참조하십시오.

디버그에 대한 참고 사항

-g 옵션으로 빌드된 이진 MEX 파일은 MATLAB과 함께 배포되지 않는 파일에 의존하기 때문에 다른 컴퓨터에서는 실행되지 않습니다. MEX 파일과 관련된 문제를 격리하는 방법에 대한 자세한 내용은 MEX 파일 문제 해결하기 항목을 참조하십시오.

MEX 파일을 디버그할 때 예외 처리 목적으로 "액세스 위반"을 사용하지 마십시오. 이 예외에서 중단되지 않도록 하려면 Win32 예외(Win32 Exceptions) 체크박스 선택을 취소하십시오. Visual Studio 2015의 경우에는 디버그(Debug) > 창(Windows) > 예외 설정...(Exception Settings...)에서 체크박스를 찾아보십시오. 다른 버전의 Visual Studio를 사용 중인 경우에는 해당하는 Microsoft 문서를 참조하십시오.

관련 항목

외부 웹 사이트