Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

MATLAB 프로그램 디버그하기

MATLAB® 프로그램을 편집기에서 대화형 방식으로 디버그하거나 명령 창에서 디버그 함수를 사용하여 프로그래밍 방식으로 디버그할 수 있습니다. 두 방법은 상호 호환 가능합니다. 라이브 편집기 또는 MATLAB Online™ 편집기에서 프로그램을 디버그하려면 라이브 편집기에서 코드 디버그하기 항목을 참조하십시오.

디버그를 시작하기 전에, 프로그램을 저장했는지와 프로그램과 프로그램에서 호출한 파일이 검색 경로나 현재 폴더에 있는지 확인하십시오.

  • 편집기에서 저장되지 않은 변경 내용이 있는 파일을 실행하면 파일이 실행되기 전에 자동으로 저장됩니다.

  • 명령 창에서 저장되지 않은 변경 내용이 있는 파일을 실행하면 MATLAB이 이전에 저장된 파일 버전을 실행합니다. 따라서, 변경 내용이 적용된 결과가 표시되지 않습니다.

중단점 설정

문제가 있을 수 있다고 생각되는 값이나 변수를 검토할 수 있도록 MATLAB 파일의 실행을 일시 중지하는 중단점을 설정합니다. 중단점은 편집기를 사용하거나 명령 창에서 함수를 사용하거나 이 두 방법을 모두 사용하여 설정할 수 있습니다.

중단점은 세 가지 유형, 즉 표준 중단점, 조건부 중단점, 오류 중단점으로 나뉩니다. 편집기에서 표준 중단점을 추가하려면 중단점을 설정하려는 실행 가능한 라인에서 중단점 표시줄을 클릭하십시오. 중단점 표시줄은 편집기의 왼쪽에서 라인 번호 오른쪽에 있는 좁은 열입니다. F12 키를 사용하여 중단점을 설정할 수도 있습니다.

실행 가능한 라인은 중단점 표시줄에서 대시(—)로 표시됩니다. 예를 들어, 아래 코드에서 2번 라인 옆에 있는 중단점 표시줄을 클릭하면 해당 라인에 중단점을 추가할 수 있습니다.

실행 가능한 명령문이 여러 라인에 걸쳐 있는 경우 추가 라인의 중단점 표시줄에 대시(—)가 없어도 해당 명령문의 각 라인에 중단점을 설정할 수 있습니다. 예를 들어, 다음 코드에서는 네 라인에 모두 중단점을 설정할 수 있습니다.

다양한 유형의 중단점에 대한 자세한 내용은 중단점(Breakpoint) 설정하기 항목을 참조하십시오.

파일 실행하기

중단점을 설정한 후 명령 창 또는 편집기에서 파일을 실행합니다. 파일을 실행하면 다음과 같은 결과가 나타납니다.

  • 실행 버튼이 일시 중지 버튼으로 바뀝니다.

  • 명령 창의 프롬프트가 MATLAB이 디버그 모드에 있으며 키보드를 제어할 수 있음을 나타내는 K>>로 변경됩니다.

  • MATLAB이 프로그램의 첫 번째 중단점에서 일시 중지합니다. 편집기에서 중단점 바로 오른쪽에 있는 녹색 화살표는 일시 중지를 나타냅니다. 실행이 재개될 때까지 일시 중지가 발생한 라인은 실행되지 않습니다. 예를 들어, 다음은 프로그램에서 x = ones(1,10);을 실행하기 전에 디버거가 프로그램을 일시 중지합니다.

  • MATLAB은 편집기 탭의 디버그 섹션에 있는 함수 호출 스택에 현재 작업 공간을 표시합니다.

    명령 창에서 디버그 함수를 사용하는 경우 함수 호출 스택을 보려면 함수 dbstack을 사용하십시오.

함수 호출 스택 사용에 대한 자세한 내용은 작업 공간 선택하기 항목을 참조하십시오.

실행 중인 파일 일시 중지하기

실행 중인 프로그램을 일시 중지하려면 편집기 탭으로 이동하고 일시 중지 버튼을 클릭하십시오. 그러면 MATLAB이 실행 가능한 다음 라인에서 실행을 일시 중지하고 일시 중지 버튼이 계속 버튼으로 바뀝니다. 실행을 계속하려면 계속 버튼을 누르십시오.

일시 중지 기능은 긴 시간 동안 실행되는 프로그램의 진행 상황을 점검하여 예상대로 실행되고 있는지 확인하려는 경우 유용합니다.

참고

일시 중지 버튼을 클릭하면 MATLAB이 사용 중인 프로그램 파일 외의 다른 파일이 일시 중지될 수도 있습니다. 계속 버튼을 누르면 파일의 결과가 달라지지 않고 정상적으로 실행이 재개됩니다.

문제를 찾아 수정하기

코드가 일시 중지되어 있는 동안 변수 값을 확인 또는 변경하거나, 코드를 수정할 수 있습니다.

디버그 중 변수 확인하거나 변경하기

코드 라인이 예상된 결과를 생성하는지 여부를 확인하기 위해 디버그 중 변수 값을 확인합니다. 이를 수행하려면 변수의 왼쪽에 마우스 포인터를 위치시킵니다. 데이터팁에 현재 변수 값이 표시됩니다.

포인터를 이동할 때까지 데이터팁이 표시된 상태로 유지됩니다. 데이터팁을 표시하는 데 어려움이 있는 경우 변수가 포함된 라인을 클릭한 후 변수 옆으로 포인터를 이동합니다. 자세한 내용은 디버그 중 값 검토하기 항목을 참조하십시오.

디버그 중에 변수 값을 변경하여 새 값이 예상하는 결과를 생성하는지 확인할 수 있습니다. 프로그램이 일시 중지된 상태에서 명령 창, 작업 공간 브라우저, 변수 편집기 중 하나에서 변수에 새 값을 할당합니다. 그런 다음, 실행을 계속하거나 프로그램을 순차적으로 실행합니다.

예를 들어, 다음은 n = 2일 때 MATLAB이 for 루프에서 일시 중지합니다.

  • 명령줄에서 n = 7;을 입력하여 n의 현재 값을 2에서 7로 변경합니다.

  • 계속 을 눌러 코드의 다음 라인을 실행합니다.

MATLAB이 코드 라인 x(n) = 2 * x(n-1);n = 7로 실행합니다.

디버그 중 코드 섹션 수정하기

디버그 중 코드 섹션을 수정하여 변경 내용을 저장하지 않은 채 가능한 수정 사항을 테스트할 수 있습니다. 일반적으로, 디버그를 중지한 후에 MATLAB 파일을 수정하고, 그런 다음 수정 사항을 저장하고 파일을 실행하는 것이 좋습니다. 그러지 않으면 예기치 않은 결과가 나올 수도 있습니다. 그러나 디버그하는 중에 시험해 보고 싶은 경우도 있을 것입니다.

디버그 중 프로그램을 수정하려면 다음을 수행하십시오.

  1. 코드가 일시 중지되어 있는 동안 파일의 아직 실행되지 않은 부분을 수정합니다.

    중단점이 회색으로 바뀌어 유효하지 않은 상태임을 나타냅니다.

  2. MATLAB의 일시 중지된 라인 이후의 모든 코드를 선택하고, 마우스 오른쪽 버튼을 클릭한 다음 상황별 메뉴에서 선택 항목 실행을 선택합니다.

코드 실행이 완료되면 디버그를 중지하고 디버그 절차를 계속 진행하기 전에 먼저 수행한 모든 변경 내용을 저장하거나 실행 취소합니다.

파일을 순차적으로 실행하기

디버그할 때 MATLAB 파일을 순차적으로 실행하여 값을 검토할 지점에서 일시 중지할 수 있습니다.

다음 표에서는 사용 가능한 디버그 동작과 각 디버그 동작을 실행하는 데 사용할 수 있는 다양한 메서드를 설명합니다.

설명

도구 모음 버튼

함수를 사용한 다른 방법

커서가 위치한 라인까지 파일 실행을 계속합니다. 상황별 메뉴에서도 사용할 수 있습니다.

커서까지 실행

없음

파일의 현재 라인을 실행합니다.

스텝

dbstep

파일의 현재 라인을 실행하는데, 이 라인이 다른 함수를 호출하는 경우 해당 함수로 이동합니다.

스텝 인

dbstep in

완료되거나 다른 중단점이 발견될 때까지 파일의 실행을 재개합니다.

계속

dbcont

스텝 인 이후, 호출된 함수 또는 로컬 함수의 나머지 부분을 실행하고, 호출된 함수에서 벗어난 후 일시 중지합니다.

스텝 아웃

dbstep out

디버그 모드를 일시 중지합니다.

일시 중지

없음

디버그 모드를 종료합니다.

디버그 중지

dbquit

디버그 세션 종료하기

문제를 확인한 뒤에는 편집기 탭으로 이동하여 디버그 중지 를 클릭하고 디버그 세션을 종료합니다. 파일을 변경하여 저장하려거나 MATLAB에서 다른 프로그램을 실행하려면 디버그 세션을 종료해야 합니다.

디버그를 중지하고 나면 편집기에 일시 중지 표시가 더 이상 나타나지 않으며, 명령 창에 K>> 대신 일반 프롬프트 >>가 다시 나타납니다. 그러면 호출 스택에 더 이상 액세스할 수 없습니다.

MATLAB이 중단점에서 일시 중지한 상태에서 응답하지 않는 경우 Ctrl+C를 누르면 MATLAB 프롬프트로 돌아갈 수 있습니다.

관련 항목