Rexx-디버깅
디버깅은 모든 프로그래밍 언어에서 중요한 기능입니다. 개발자가 오류를 진단하고 근본 원인을 찾은 다음 그에 따라 해결하는 데 도움이됩니다. Rexx에서 추적 유틸리티는 디버깅에 사용됩니다. 추적 명령은 두 가지 방법으로 구현할 수 있습니다. 하나는 배치 모드이고 다른 하나는 대화 형 모드입니다. 두 옵션을 모두 구현하는 방법을 살펴 보겠습니다.
배치 모드에서 추적
추적 명령은 실행되는 각 Rexx 명령의 세부 수준을 제공하는 데 사용됩니다.
trace 문의 일반 구문은 다음과 같습니다.
통사론
trace [setting]
설정은 다음 옵션 중 하나 일 수 있습니다.
A − 모든 명령을 추적합니다.
C − 운영 체제로 전송 된 호스트 명령 만 추적합니다.
E − 오류를 일으킨 운영 체제로 전송 된 호스트 명령 만 추적합니다.
F − 오류를 일으킨 운영 체제로 전송 된 호스트 명령 만 추적합니다.
I − 이것은 Rexx 명령의 중간 수준 추적을 제공합니다.
L −이 옵션은 발생하는 추적에 레이블을 지정하려는 경우입니다.
N − 이것은 추적이 발생하지 않는 기본 옵션입니다.
trace 명령의 예를 살펴 보겠습니다.
예
/* Main program */
trace A
/* Main program */
n = 100.45 if datatype( n, wholenumber ) then signal msg
say 'This is a whole number'
return 0
msg :
say ' This is an incorrect number '
위 프로그램의 출력은 다음과 같습니다.
5 *-* n = 100.45 if datatype( n, wholenumber ) then signal msg
7 *-* say 'This is a whole number
This is a whole number
8 *-* return 0
출력에서 프로그램의 출력에 추가 추적이 추가되었음을 알 수 있습니다. 출력에 대해 다음 사항을 확인할 수 있습니다.
실행 된 명령문과 함께 행 번호가 추적 출력에 추가됩니다.
실행되는 각 줄은 추적 출력에 표시됩니다.
추적 기능
추적 기능을 사용하여 추적을 활성화 할 수도 있습니다. 일반적인 구문과 예는 다음과 같습니다.
통사론
trace()
위의 함수는 현재 추적 수준을 반환합니다.
매개 변수
없음
반환 값
위의 기능은 현재 추적 수준을 제공합니다.
예
/* Main program */
say trace()
/* Main program */
n = 100.45 if datatype( n, wholenumber ) then signal msg
say 'This is a whole number'
return 0
msg :
say 'This is an incorrect number '
위 프로그램의 출력은 다음과 같습니다.
N
This is an incorrect number
N의 첫 번째 줄은 트레이스가 Normal로 설정되었음을 나타냅니다.
추적 값 설정
추적 레벨은 추적 기능으로 설정할 수 있습니다. 일반적인 구문과 예는 다음과 같습니다.
통사론
trace(travel_level)
매개 변수
trace_level − 이것은 추적 레벨 설정에 사용할 수있는 옵션과 유사합니다.
반환 값
위의 기능은 현재 추적 수준을 제공합니다.
예
/* Main program */
say trace()
current_trace = trace('A')
say current_trace
/* Main program */
n = 100.45 if datatype( n, wholenumber ) then
signal msg say 'This is a whole number'
return 0
msg :
say ' This is an incorrect number '
위 프로그램의 출력은 다음과 같습니다.
N
4 *-* say current_trace
N
6 *-* n = 100.45
7 *-* if \ datatype( n, wholenumber ) then
8 *-* signal msg
12 *-* say 'This is an incorrect number'
'This is an incorrect number'
대화 형 추적
대화 형 추적은 프로그램이 실행될 때 추적이 수행되는 곳입니다. 중단 점을 추가하고 각 문이 어떻게 실행되는지 볼 수있는 Visual Studio for .Net과 같은 IDE에서와 마찬가지로 여기에서도 마찬가지로 각 코드 줄이 실행될 때 프로그램을 볼 수 있습니다.
일반적인 구문은 다음과 같습니다.
통사론
trace ?options
여기서 옵션은 아래와 같이 trace 명령에 대해 동일합니다.
A − 모든 명령을 추적합니다.
C − 운영 체제로 전송 된 호스트 명령 만 추적합니다.
E − 오류를 일으킨 운영 체제로 전송 된 호스트 명령 만 추적합니다.
F − 오류를 일으킨 운영 체제로 전송 된 호스트 명령 만 추적합니다.
I − 이것은 Rexx 명령의 중간 수준 추적을 제공합니다.
L −이 옵션은 발생하는 추적에 레이블을 지정하려는 경우입니다.
N − 이것은 추적이 발생하지 않는 기본 옵션입니다.
활성 추적을 구현하는 예를 살펴 보겠습니다.
예
/* Main program */
trace ?A
/* Main program */
n = 100.45 if datatype( n, wholenumber ) then
signal msg
say 'This is a whole number'
return 0
msg : say 'This is an incorrect number'
위 프로그램의 출력은 다음 프로그램과 같습니다. 추적은 코드의 각 줄에서 중지됩니다. 그런 다음 Enter 버튼을 눌러 다음 코드 줄로 이동해야합니다.
This is an incorrect number
+++ "LINUX COMMAND /home/cg/root/5798511/main.rex"
5 *-* n = 100.45 if datatype( n, wholenumber ) then
+++ Interactive trace. "Trace Off" to end debug, ENTER to Continue. +++
6 *-* signal msg
10 *-* msg :
10 *-* say 'This is an incorrect number'