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'