ABAP Watchpoint 사용법

오늘은 ABAP Watch point 사용법에 대해서 정리해보도록 하겠습니다.

ABAP Watchpoint 는 ABAP Break point 기능과 더불어, SAP에서 ABAP으로 개발을 할 때, 프로그램을 디버깅하고 코드를 분석하는 도구 중 하나입니다.

참고로 ABAP BREAK POINT와 관련해서는 아래의 링크를 통해 좀 더 상세한 내용을 확인할 수 있습니다.

abap break point 디버깅 방법 및 종류(Static, Dynamic)

ABAP 디버거 BREAK POINTS 메뉴 사용법 및 예제

Watchpoint의 기본 개념

ABAP Watchpoint란, 특정 변수 혹은 구조, 인터널 테이블의 특정 필드의 값 등을 모니터링 하거나 추적하고자 할 때 사용합니다.

미리 지정한 변수의 값을 감시(Watch)하고 있다가 조건에 만족하는 값(Point)이 정해졌다면 디버깅이 시작됩니다.

감시 가능한 변수의 범위는 로컬 변수나 전역 변수 뿐만 아니라 클래스의 멤버 변수 및 Function에서 사용되는 값 등 다양한 값을 조건으로 사용할 수 있습니다.

Dynamic Break Point를 명시적으로 설정하지 않더라도, 지정한 변수에 대한 조건값이 참인 경우, 해당 위치에서 자동으로 Break 가 걸리게 됩니다.

그렇기 때문에 많은 레코드 등을 담고 있는 인터널 테이블의 특정 값을 LOOP 문 등에서 찾고자 할 때 유용하게 사용할 수 있습니다.

 

Watch Point의 생성

Watch Point는 크게 두개의 절차로 생성할 수 있습니다.

디버깅이 실행되면 상단에 /Watchpoint/ 버튼을 클릭해 줍니다.

abap watch point 의 생성

그러면 watchpoint를 지정할 수 있는 팝업창이 호출됩니다.

변수 정의-조건값 입력

variable 입력란에 감시하고자 하는 변수명을 지정합니다.

또, free condition entry에는 abap 구문과 비슷한 형태로 조건을 입력하면 됩니다.

watchpoint의 variable과 free style condition 입력

기본적으로 다음과 같이 사용합니다. 만약 GT_DATA-FIELDNAME이 ‘REFTYPE’ 값인 경우 BREAK POINT를 걸고자 한다면 다음과 같이 기술하면 됩니다.

CREATE WATCH POINT 예제

변수값의 검증 – 특정 인덱스의 값 일 때 의 예시

만약 총 30개의 인터널 테이블의 값이 있고, 29번째 데이터를 검증해야 할 사항이 있다면, LOOP를 무려 29번을 Debug Continue 버튼을 누르며 기다려야 합니다.

특정 인덱스 일 떄 디버깅을 거는 WATCH POINT 예시

이럴 때 다음과 같이 Watch Point를 잡아주게 되면,

  • Variable : SY-TABIX
  • Free condition entry : SY-TABIX = 29

GT_DATA에 대한 LOOP SY-TABIX 값이 29일 때 자동으로 BREAK 가 걸리게 됩니다.

sy tabix 조건에 맞는 인덱스일 때 디버깅 watch point 잡는 방법

예를 들어 GS_LIST 자재 필드의 특정 자재의 번호가 A0000050 일 때 WATCH POINT가 필요한 경우에는 아래와 같이 입력을 해주면 됩니다.

  • Variable : GS_LIST-MATNR
  • Free condition entry : GS_LIST-MATNR = ‘A0000050’

 

Watch Point의 삭제

삭제는 Break Point Tool에서 처리할 수 있습니다. 단순히 해당 라인을 선택한 후 휴지통 버튼을 눌러주면 됩니다.

WATCH POINT 삭제 방법

이상으로 ABAP Debugger에서 Watchpoint 사용법에 대해서 알아보았습니다. 코드 구문 분석이나 에러 사항 찾고자 할 때 유용하게 사용해 보시기 바랍니다.

Free Condition entry의 사용 예제는 아래의 SAP 공식 문서에서 확인할 수 있습니다.

Conditions for Watchpoints

함께 보면 좋은 글

sap abap 소스 검색 방법 2가지(+텍스트 스캔)

ABAP Collect 사용법 및 예제