Main Content

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

라이브 편집기에서 코드 디버그하기

라이브 스크립트 또는 라이브 함수에서 문제를 진단하려면 라이브 편집기에서 코드를 디버그하십시오. 라이브 편집기에서 디버그하는 방법은 다음과 같습니다.

  • 세미콜론을 제거하여 출력값을 표시합니다.

  • 코드의 특정 라인까지 실행하고 여기까지 실행 버튼을 사용하여 일시 중지합니다.

  • 일시 중지 상태에서 스텝 인 버튼을 사용하여 함수와 스크립트로 이동합니다.

  • 파일을 실행할 때 특정 라인에서 일시 중지할 수 있도록 파일에 중단점을 추가합니다.

출력값 표시하기

라이브 스크립트 또는 라이브 함수에서 문제가 발생한 위치를 간단하게 확인할 수 있는 방법은 출력값을 표시하는 것입니다. 어떤 라인의 출력값을 표시하려면 그 라인의 끝에 있는 세미콜론을 제거하십시오. 라이브 편집기에서는 각 출력값을 생성한 코드의 라인과 함께 출력값이 표시되기 때문에 문제 발생 위치를 확인하기 쉽습니다.

예를 들어, 임의의 벡터 데이터를 플로팅하고 플롯에서 평균에 해당하는 가로선을 그리는 plotRand.mlx 스크립트가 있다고 가정해 보겠습니다.

2번 라인의 rand 함수 출력값을 표시하려면 라인 끝에 있는 세미콜론을 제거하십시오. 라이브 편집기에 라인 번호가 표시되지 않는 경우, 번호를 표시하려면 보기 탭으로 이동하여 라인 번호 버튼을 누르십시오. 그러면 MATLAB®r의 값을 표시합니다.

여기까지 실행을 사용하여 디버그하기

단일 변수의 상태를 표시하려는 경우에는 출력값을 표시하는 방법이 유용합니다. 작업 공간에서 모든 변수의 상태를 탐색하려면 라이브 스크립트를 실행한 다음, 코드의 특정 라인이 실행되기 전에 일시 중지하십시오.

코드의 특정 라인까지 실행한 후 일시 중지하려면 라인 왼쪽의 여기까지 실행 버튼을 클릭하십시오. 선택한 라인에 도달할 수 없는 경우, MATLAB은 파일 끝에 도달하거나 중단점이 나타날 때까지 계속 실행됩니다. 여기까지 실행 버튼은 디버그할 때 라이브 함수에서만 사용할 수 있습니다.

예를 들어, plotRand.mlx에서 2번 라인 왼쪽의 버튼을 클릭합니다. 그러면 MATLAB은 1번 라인부터 plotRand.mlx를 실행하고 2번 라인을 실행하기 전에 일시 중지됩니다.

MATLAB이 일시 중지되면 라이브 편집기 탭의 실행 버튼이 계속 버튼으로 변경됩니다. 라이브 편집기는 MATLAB에서 일시 중지된 라인을 녹색으로 강조 표시합니다. 강조 표시된 라인은 MATLAB이 실행을 재개해야 실행됩니다.

MATLAB이 일시 중지된 상태에서는 파일을 수정하지 않는 것이 좋습니다. MATLAB이 일시 중지된 상태에서 변경된 사항은 MATLAB이 일시 중지된 코드 실행을 완료한 후 해당 코드를 다시 실행하기 전까지는 실행되지 않습니다.

코드 실행을 계속하려면 계속 버튼을 클릭하십시오. 그러면 MATLAB은 파일 끝 또는 중단점에 도달할 때까지 파일을 계속 실행합니다. 또는 코드에서 실행 중단하고자 하는 지점에 있는 라인의 왼쪽에 있는 버튼을 클릭해도 됩니다.

코드를 계속 라인 단위로 실행하려면 라이브 편집기 탭에서 스텝을 클릭하십시오. 그러면 MATLAB은 일시 중지된 위치에서 현재 라인을 실행하고 다음 라인에서 일시 중지됩니다.

라이브 편집기 탭으로 이동하여 스텝을 선택한 다음, 커서까지 실행을 선택하여 커서가 있는 라인까지 실행할 수도 있습니다.

디버그 중 변수 값 보기

MATLAB이 일시 중지된 상태에서 변수 값을 보려면 마우스 포인터를 변수 위에 올려놓으십시오. 데이터팁에 현재 변수 값이 표시됩니다. 포인터를 이동할 때까지 데이터팁이 표시된 상태로 유지됩니다. 데이터팁을 비활성화하려면 보기 탭으로 이동하여 데이터팁 버튼을 누르십시오.

명령 창에 변수 이름을 입력하여 변수 값을 볼 수도 있습니다. 예를 들어, 변수 n의 값을 보려면 n을 입력하고 Enter 키를 누르십시오. 명령 창에 변수 이름과 해당 값이 표시됩니다. 현재 작업 공간에 있는 변수를 모두 보려면 작업 공간 브라우저를 사용하십시오.

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

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

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

참고

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

디버그 세션 종료하기

문제를 확인한 뒤에는 라이브 편집기 탭으로 이동하여 중지를 클릭하고 디버그 세션을 종료합니다. 혼동을 피할 수 있도록 디버그 작업을 완료할 때마다 디버그 세션을 종료하십시오. 저장하면 라이브 편집기는 자동으로 디버그 세션을 종료합니다.

함수로 이동하기

디버그 시, 사용자는 호출된 파일로 이동하여 값을 검토하고자 하는 지점에서 일시 중지할 수 있습니다. 파일로 이동하려면 이동하려는 함수 왼쪽에서 직접 버튼을 클릭하십시오. F11 키를 사용하여 함수로 스텝 인할 수도 있습니다. 라인에 다른 함수에 대한 호출이 포함되어 있으면 라이브 편집기는 이 버튼만을 표시합니다.

기본적으로 버튼은 사용자 정의 함수 및 스크립트에서만 표시됩니다. MathWorks® 함수에서도 버튼을 표시하려면 탭의 환경 섹션에서 기본 설정을 클릭하십시오. 그런 다음, MATLAB > 편집기/디버거를 선택하고 라이브 편집기에서 디버그 섹션에서 사용자 정의 함수에 대해서만 [스텝 인] 버튼 표시 선택을 취소합니다.

이동한 후 파일 상단의 버튼을 클릭하여 호출된 함수의 나머지 부분을 실행하고 호출된 함수에서 나간 다음, 실행을 일시 중지합니다. Shift+F11을 사용하여 함수에서 스텝 아웃할 수도 있습니다.

라이브 편집기 탭으로 이동하여 스텝을 선택한 다음, 스텝 인 또는 스텝 아웃을 선택하여 함수에 대해 스텝 인과 스텝 아웃을 수행할 수도 있습니다. 이 버튼은 사용자 정의 함수에 대해서만 [스텝 인] 버튼 표시 기본 설정을 적용하지 않고 항상 사용자 정의 함수와 MathWorks 함수 모두에 대해 스텝 인과 스텝 아웃을 수행합니다.

작업 공간에서 변수 검토하기

호출된 함수 또는 호출된 파일로 이동하면 MATLAB이 현재 라인에서 일시 중지되기 전까지 실행한 함수 목록이 라이브 편집기에 표시됩니다. 파일 상단의 이 목록에는 함수가 순서대로 표시됩니다. 다시 말해, 처음 호출된 스크립트나 함수부터 MATLAB이 일시 중지된 현재 스크립트나 함수까지 왼쪽에서 오른쪽 방향으로 표시됩니다. 이 목록을 함수 호출 스택이라고 합니다.

함수 호출 스택 내의 각 함수마다 이에 대응하는 작업 공간이 있습니다. 작업 공간에는 MATLAB 내에서 생성한 변수, 또는 데이터 파일이나 다른 프로그램에서 가져온 변수가 있습니다. 명령 창을 통해 할당된 변수나 스크립트를 통해 생성된 변수는 기본 작업 공간(Base Workspace)에 속합니다. 함수에서 생성된 변수는 그 함수 고유의 작업 공간에 속합니다.

디버그 중 변수를 검토하려면, 먼저 해당 작업 공간을 선택해야 합니다. 함수 호출 스택에서 선택되어 있는 함수는 현재 작업 공간을 나타냅니다. 작업 공간을 선택하거나 변경하려면 함수 호출 스택에서 함수를 클릭하십시오. 그러면 MATLAB이 라이브 편집기에서 함수를 열고 현재 작업 공간을 이 함수의 작업 공간으로 변경합니다.

작업 공간을 선택하면 작업 공간 브라우저 또는 라이브 편집기의 데이터팁을 통해 작업 공간의 변수 값을 볼 수 있습니다.

중단점 추가하기 및 실행하기

파일에 실행할 때마다 일시 중지하려는 코드 라인이 있으면 이 라인에 중단점을 추가하십시오. 라이브 편집기에서 중단점을 추가하려면 중단점을 설정할 실행 가능한 라인 왼쪽에 있는 회색 영역을 클릭하십시오. 예를 들어, 이 코드에서 3번 라인에 중단점을 추가하려면 이 라인 옆의 영역을 클릭합니다. F12 키를 사용하여 중단점을 설정할 수도 있습니다.

파일을 실행하면 MATLAB은 중단점이 나타내는 코드의 라인에서 일시 중지됩니다.

중단점 지우기

파일을 닫았다가 다시 열면 중단점이 저장된 것을 볼 수 있습니다.

중단점을 지우려면 중단점을 마우스 오른쪽 버튼으로 클릭하고 상황별 메뉴에서 중단점 지우기를 선택하십시오. F12 키를 사용하여 중단점을 지울 수도 있습니다.

파일에 있는 모든 중단점을 지우려면 파일에 있는 중단점 모두 지우기를 선택하십시오. 모든 파일에 있는 중단점을 모두 지우려면 모두 지우기를 선택하십시오.

MATLAB 세션이 종료되면 중단점이 자동으로 지워집니다.

중단점 사용 안 함

선택한 중단점을 사용 안 하도록 설정하여 프로그램이 일시적으로 중단점을 무시하고 실행을 계속하도록 할 수 있습니다. 예를 들어, 문제를 확인하고 수정한 경우 중단점을 사용하지 않도록 설정할 수 있습니다.

중단점을 사용하지 않으려는 경우에는 중단점을 마우스 오른쪽 버튼으로 클릭하고 상황별 메뉴에서 중단점 사용 안 함을 선택하십시오. 그러면 중단점이 회색으로 변해 비활성화되었음을 나타냅니다.

중단점을 다시 활성화하려면 중단점을 마우스 오른쪽 버튼으로 클릭하고 중단점 사용을 선택하십시오. 파일의 모든 중단점을 활성화 또는 비활성화하려면 파일에 있는 중단점 모두 사용 또는 파일에 있는 중단점 모두 사용 안 함을 선택하십시오. 이 옵션은 활성화 또는 비활성화가 가능한 중단점이 하나 이상인 경우에만 사용할 수 있습니다.

조건부 중단점 추가하기

사용자는 MATLAB이 지정된 라인에서 일시 중지할 때 고려할 조건을 중단점에 추가할 수 있습니다. 조건을 추가하려면 중단점을 마우스 오른쪽 버튼으로 클릭하고 조건 설정/수정을 선택하십시오. 편집기 대화 상자가 열리면 조건을 입력하고 확인을 클릭합니다. 조건은 논리형 스칼라 값을 반환하는 유효한 MATLAB 표현식이어야 합니다. MATLAB은 라인을 실행하기 전에 이 조건을 평가합니다.

예를 들어, plotRand.mlx에서 임의로 생성된 데이터에 0이 포함된 경우에만 일시 중지하려는 경우를 가정해 보겠습니다.

3번 라인에 다음 조건의 중단점을 추가합니다.

any(r == 0)
노란색 조건부 중단점이 3번 라인에 나타납니다.

파일을 실행하면 조건이 충족되는 경우에 MATLAB이 지정된 라인에서 일시 중지됩니다. 예를 들어, plotRand 예제에서 r의 값 중 하나라도 0이면 MATLAB은 3번 라인을 실행하기 전에 일시 중지됩니다.

익명 함수의 중단점 추가하기

익명 함수가 포함된 MATLAB 코드 라인에 여러 개의 중단점을 추가할 수 있습니다. 라인 자체 그리고 라인의 각 익명 함수에 대해 중단점을 설정할 수 있습니다.

중단점을 추가하려면 실행 가능한 라인 왼쪽에 있는 회색 영역을 클릭하여 라인에 대한 중단점을 추가하십시오. MATLAB은 라인에는 중단점을, 라인의 각 익명 함수에는 비활성화된 중단점을 추가합니다. 익명 함수에서 중단점을 활성화하려면 중단점을 마우스 오른쪽 버튼으로 클릭하고 중단점 사용을 선택하십시오.

라인의 모든 중단점에 대한 정보를 확인하기 위해서는 중단점 아이콘에 포인터를 올려놓습니다. 제공 가능한 정보가 툴팁에 표시됩니다. 예를 들어, 이 코드에서 5번 라인에는 각각 하나의 중단점을 가지는 익명 함수가 두 개 있습니다.

익명 함수에 중단점을 설정하면 익명 함수가 호출될 때 MATLAB이 일시 중지됩니다. 녹색으로 강조 표시된 라인은 코드가 익명 함수를 정의한 위치입니다. 회색으로 강조 표시된 라인은 코드가 익명 함수를 호출한 위치입니다. 아래 코드의 경우, MATLAB은 5번 라인에서 정의되고 6번 라인에서 호출된 익명 함수 g에 대해 설정된 중단점에서 프로그램을 일시 중지합니다.

관련 항목