중단점은 dbstop
함수로 모든 m 기록철에 설정할 수 있습니다.
내장 벌레잡이용 중단점을 설정합니다.
함수는 현재 경로
에 있는 함수 이름입니다. 이미 벌레잡이터 안에 있으면 함수
매개변수를 생략해도 현재 함수를 쓸 수 있습니다. 중단점을 매인 함수에 넣으려면 범위 연산자 ‘>’으로 설정합니다.
예를 들어, file.m에 매인 함수
func2
이 있으면, func2
에 있는 중단점은
file>func2
으로 명시합니다.
줄은 실행을 중단할 줄 번호입니다. 줄을 지정하지 않으면, 기록철
func.m의 첫 번째 실행 줄을 기본으로 사용합니다. 한 명령 안에 여러 줄을 지정할 수 있습니다. 함수 구문을
사용하여 단일 벡터 매개변수([줄1, 줄2, …]
)로 여러 줄을
전달할 수도 있습니다.
조건식은 옥타브 표현식으로써 부호 맥락상 중단점이 작동하여야 하는지 평가합니다. 중단점을 만나면,
조건식을 평가하여
조건식이 참이면 중단점이 작동합니다. 정의되지 않은 변수를 참조하는 등 조건식을 평가할 수 없으면,
오류가 납니다. 부작용이 있는 표현식(y++ > 1
등)은 변수를 바꾸며, 보통 사용을 꺼려야 합니다. 따옴표(‘"’, ‘'’)나
주석 문자(‘#’, ‘%’)가 있는 조건식은 반드시 따옴표로 묶어야
합니다.(이 사항은 편집기의 문맥 차림표에 적용되지 않습니다.) 예를 들어,
dbstop in axis at 246 if 'any (opt == "x")'
사건을 특정하는 형식은 주어진 함수와 줄 번호에 있는 특정 중단점을 만들지 않습니다. 명백한 예외 사건이 발생했을 때 벌레잡이터로 들어가게 합니다. 가능한 값은 다음과 같습니다.
error
오류가 발생하면 멈춥니다. debug_on_error (true)
와 debug_on_interrupt (true)
두 개를 모두 지정하는 것과 같습니다.
caught error
오류를 시행문 구역에서 잡았을 때 멈춥니다.(아직 구현하지 않음)
interrupt
중단 신호(Ctrl-C)가 오면 멈춥니다.
naninf
부호가 비정형 값을 반환하면 멈춥니다.(아직 구현하지 않음)
warning
경고가 발생하면 멈춥니다.
debug_on_warning (true)
를 지정하는 것과 같습니다.
사건 error
, caught error
, warning
은 모두 뒤에
오류 식별자 또는 경고 식별자인 문자열이 따라올 수 있습니다. 식별자가 덧붙으면 식별자로 지정한 오류와 경고에서만 멈춥니다. 여러 식별자에서
멈추려면, dbstop
명령을 여러 번 내려야 합니다.
중단점과 사건을 같은 구문을 사용한 dbclear
명령으로 지울 수 있습니다.
bp_state = dbstatus; …; dbstop (bp_state)
명령을 실행하여 모든
중단점을 저장하여 두었다가 한 번에 모두 복구하는 것이 가능합니다.
선택 출력 실_줄은 중단점을 설정한 실제 줄 번호입니다. 지정한 줄이 실행 불가능한 경우, 지정한 줄과 다를 수 있습니다. 예를 들어, 중단점을 빈 줄에 설정하면, 실제 중단점은 빈 줄 바로 뒤에 있는 실행 가능한 줄에 설정됩니다.
외부 그림 사용자 사이틀에서 편집하는 등 기록철을 다시 구문 분석하게 되면, 기록철 안에 있는 모든 중단점은 지워집니다.
같이 보기: dbclear, dbstatus, dbstep, debug_on_error, debug_on_warning, debug_on_interrupt.
분류 원소 함수에 있는 중단점도 지원합니다.(예:
dbstop ("@class/method")
) 그러나 내장 함수(예: sin
등)와 동적 적재 함수(예: oct)에는 중단점을 설정하지 못합니다.
함수 어귀에 중단점을 설정하려면 1번 줄에 중단점을 설정하던가, 줄 번호를 모두 빼고 함수 이름으로만 중단점을 설정합니다. 중단점을 설정하면, 서두에 있는 주석 구역을 무시하고 함수의 첫 번째 실행 가능한 표현식에 중단점을 설정합니다. 예시:
dbstop ("asind", 1) ⇒ 29
반환값 29
가 중단점이 사실상 29번 줄에 설정됨을 의미함에 주의하십시오. 함수에 있는 중단점의 상태는 dbstatus
으로
조회합니다.
작동하는 중단점 위치를 보고합니다.
입출력 매개변수 없이 호출하면, 중단점이 있는 모든 함수와 그 함수에서 중단점이 설정된 줄 번호를 출력합니다.
함수 이름 함수를 지정하면, 지정한 함수와 그 매인 함수에 있는 중단점만 보고합니다.
선택 반환 매개변수 중단점_목록은 아래 기록란이 있는 구조체 배열입니다.
중단점이 있는 함수 이름입니다. file.m이라는 m 기록철에 func2
이라는 매인
함수가 있다고 하면, 이 매인 함수는 file>func2
으로 표시합니다.
함수 부호가 자리한 m 기록철의 이름입니다.
중단점이 있는 줄 번호입니다.
중단점을 작동시키려면 반드시 만족시켜야 하는 조건이며, 조건이 없는 중단점에는 빈 문자열로 나옵니다.
Idbstop if error
가 참이기는 하나 식별자를 명시하지 않은 경우, 반환값에는 "errs"
라는
빈 기록란이 들어갑니다. 식별자를 지정하면, errs
기록란에는 한 열 당 식별자가 하나씩 들어갑니다.
dbstop if error
가 거짓이면, "errs"
기록란이
없습니다. "warn"
기록란도 dbstop if warning
와 비슷합니다.
앞선 예시를 다시 사용해 보면, dbstatus ("asind")
는 29를 반환합니다. 그리고
나서 dbclear
함수로 나열한 중단점을 지울 수 있습니다.
함수 함수의 줄 번호 줄에 있는 중단점을 지웁니다.
매개변수는 다음과 같습니다.
문자열 변수인 함수 이름입니다. 이미 벌레잡이터 안에 있으면 이 매개변수를 생략해도 현재 함수를 쓸 수 있습니다.
지울 중단점이 있는 줄 번호입니다. 여러 줄을 지정하려면 매개변수를 분리하던가 벡터로 주어야 합니다.
error
, interrupt
, warning
과 같은
사건입니다.(자세한 내용은 dbstop을 참고)
줄 번호를 지정하지 않으면, 지정한 함수에 있는 모든 중단점을 지웁니다.
지정한 줄에 중단점이 없으면 아무 일도 일어나지 않습니다.
특수 예약어 "all"
은 모든 기록철의 모든 중단점을 지웁니다.
중단점을 매인 함수에 설정할 수도 있습니다. 예를 들어, 기록철에 아래와 같은 함수가 있으면
function y = func1 (x) y = func2 (x); endfunction function y = func2 (x) y = x + 1; endfunction
아래 명령으로 매인 함수의 시작 부분에 중단점을 직접 설정할 수 있습니다.
dbstop func1>func2 ⇒ 5
‘>’이 매인 함수와 매인함수가 담긴 기록철을 구별하는 문자임에 유의하십시오.
옥타브 대본에 중단점을 설정하는 또다른 쉬운 방법은 keyboard
함수를 사용하는 것입니다.
m 기록철 실행을 멈추고, 벌레잡이터로 들어갑니다.
keyboard
함수를 실행하면, 옥타브가 길잡이를 출력하고 사용자 입력을 기다립니다. 입력한 내용은 문자열로써
평가되고 결과가 나옵니다. 이로서 함수 안에 있는 변수 값을 분석하고, 필요하면 새 값을 할당할 수 있습니다. 길잡이를 떠나 일반적인 입력
실행으로 돌아가려면 ‘return’ 또는 ‘dbcont’을 타자합니다. keyboard
함수는 종료 상태를 반환하지 않습니다.
keyboard
를 매개변수 없이 실행하면, 기본 길잡이 ‘debug> ’를
사용합니다.
대본에서 사용자가 실행을 멈추기를 바라는 자리에 keyboard
함수를 씁니다. 대본 실행 중에 자동으로
벌레잡이터로 들어갑니다.