Main Content

dbstack

함수 호출 스택(Function Call Stack)

설명

예제

dbstack은 현재 일시 중지 조건에 이르게 한 함수 호출의 라인 번호와 파일 이름을 실행 순서대로 표시합니다. 이 표시 동작은 현재 실행 중인 함수부터 시작하여 맨 위의 함수에 도달할 때까지 계속됩니다. 각 라인 번호는 편집기에서 그 위치로 이동할 수 있는 하이퍼링크입니다. 표기법 functionname>localfunctionname은 로컬 함수의 위치를 설명합니다.

예제

dbstack(n)은 처음 n개의 스택 프레임을 생략하여 표시합니다. 이 구문은 오류 핸들러 내에서 dbstack을 실행하는 경우 등에 유용할 수 있습니다.

예제

dbstack(___, '-completenames')는 스택에 포함된 각 함수의 정규화된 이름을 출력합니다.

위에 열거된 구문 중 하나의 입력 인수를 사용하여 '-completenames'를 지정할 수 있습니다.

예제

ST = dbstack(___)m×1 구조체 ST로 스택 추적 정보를 반환합니다.

예제

[ST,I] = dbstack(___)은 현재 작업 공간 인덱스인 I도 반환합니다.

예제

모두 축소

MATLAB® 코드 파일을 디버그하는 중에 dbstack 명령을 실행하여 스택 추적 정보를 봅니다.

다음 명령문이 포함된 파일 myfile.m을 만듭니다.

function n = myfile(x)
n = myfunction(x-1);
end

function z = myfunction(y)
z = 2 / y;
end

myfunction에 중단점을 설정하고 1을 입력값으로 사용하여 myfile을 실행합니다. myfunction을 실행하는 동안 MATLAB은 라인 z = 2/y에서 일시 중지됩니다.

dbstop in myfile>myfunction
myfile(1);

dbstack 명령을 실행합니다. 그러면 MATLAB이 현재 중단점에 이르게 한 함수 호출의 라인 번호와 파일 이름을 표시합니다.

dbstack
In myfile>myfunction (line 5)
In myfile (line 2)

파일을 디버그하는 중에 각 함수에 대한 전체 파일 이름, 함수 이름, 라인 번호를 스택에 저장합니다.

다음 명령문이 포함된 파일 myfile.m을 만듭니다.

function n = myfile(x)
n = myfunction(x-1);
end

function z = myfunction(y)
z = 2 / y;
end

myfunction에 중단점을 설정하고 1을 입력값으로 사용하여 myfile을 실행합니다. myfunction을 실행하는 동안 MATLAB은 라인 z = 2/y에서 일시 중지됩니다.

dbstop in myfile>myfunction
myfile(1);

첫 번째 프레임을 생략하고 전체 이름을 요청하여 dbstack 명령을 실행합니다. 그러면 MATLAB이 지정된 구조체 ST로 스택 추적 정보를 반환합니다.

[ST, I] = dbstack('-completenames', 1)
ST = 

    file: 'C:\myProject\myfile.m'
    name: 'myfile'
    line: 2


I =

     1

입력 인수

모두 축소

생략할 프레임 개수로, 음이 아닌 정수로 지정됩니다.

출력 인수

모두 축소

스택 추적 정보로, m×1 구조체로 반환됩니다. 여기서 m은 호출 스택에 포함된 함수의 개수입니다. 이 구조체는 다음 필드를 가집니다.

file함수가 표시되는 파일입니다. 파일이 없는 경우 이 필드는 비어 있습니다.
name파일 내 함수 이름입니다.
line함수 호출의 라인 번호입니다.

참고

dbstack 동작 중 파일 끝(EOF)을 지나게 되는 경우, 이 함수는 음의 라인 번호 값을 반환하여 특별한 경우임을 나타냅니다. 예를 들어, 실행할 마지막 라인이 라인 15인 경우 dbstack 라인 번호는 이 마지막 라인 실행 전에는 15를 반환하고, 실행 후에는 -15를 반환하게 됩니다.

현재 작업 공간 인덱스로, 양의 정수로 반환됩니다. 이 인덱스는 현재 작업 공간과 MATLAB이 현재 일시 중지되었거나 실행 중인 작업 공간 사이의 작업 공간 개수를 나타냅니다.

확장 기능

버전 내역

R2006a 이전에 개발됨