ABAP 프로그램 개발 과정에서 로직의 흐름을 확인하거나 실행 과정에서 처리되는 변수 값을 확인하기 위해 중단점(Break Point)를 설정해서 디버그에서 확인하는 작업을 많이 하게 됩니다.
개발이 끝나 운영중인 프로그램에 대해서도 데이터 확인을 위해 중단점 사용을 가끔 하게 됩니다.
중단점(Break Point)이 설정되면 프로그램이 실행되는 과정에 해당 중단점에 이르게 되면 그 위치에서 실행이 멈추고 Debugging 모드로 대기하게 됩니다.
Debugger 상태에서 Internal Table, Variables의 데이터 값을 확인하거나 한 스텝(Step), 한 스텝 실행하면서 프로그램 로직이 어떻게 흘러 가는지 확인할 수 있어 중단점 사용은 프로그램 개발 단계에서는 필수 입니다.
이번 글에서는 ABAP 프로그램에서 조건부 중단점(Break points)을 설정하는 방법 4가지에 대해 알아보겠습니다.
ABAP 편집기의 프로그램 소스에서 미리 중단점을 설정하는 방법
1. ABAP 편집기(SE38, SE80 모두 동일) 화면에서 중단점을 설정하고자 하는 위치의 라인 앞(아래 화먄의 빨간 사각형 부분)에 마우스를 클릭하면 해당 위치에 중단점이 설정됩니다..
2. 한번 클릭하면 중단점 설정, 설정한 라인을 한번 더 클릭하면 중단점 해제 됩니다.
3. 이제 프로그램을 실행하면 중단점으로 설정한 부분까지 실행되다가 해당 위치에 Debugger 모드로 멈추게 됩니다.
ABAP 프로그램을 Debugger 모드로 실행하기
▼ ABAP 프로그램을 실행할 때 Debugger 모드로 실행하고자 한다면 명령 입력필드에 /H 입력하고 엔터를 친 다음 실행하면 됩니다.
▼ /H 입력하고 엔터를 치면 하단 메세지 표시 부분에 “디버깅을 설정했습니다.“라는 메세지를 확인할 수 있습니다.
ABAP Debugger 화면에서 Breakpoints를 사용하여 조건부 중단점 설정하기
▶ 단순히 중단점을 설정하는 것이 아니라 특정 조건에 맞는 경우에만 원하는 위치에 중단점이 걸리도록 하면 무척 편리할 것입니다.
1. 디버깅 화면에서 Break./Watchpoints 탭을 선택 합니다.
2. 다시 내부 탭 중에 Breakpoints 탭을 선택 합니다.
3. 새로운 Breakpoints 중단점을 만들기 위해 생성 아이콘을 클릭 합니다.
4. Create Breakpoints 화면에서 Srce Code 탭을 선택 합니다.
5. Row는 중단점이 설정될 위치 입니다. 예제에서는 프로그램의 39 행에 중단점이 걸리도록 설정해 보겠습니다.
6. 이제 중단점이 걸리는 조건 식을 넣어주면 됩니다. 예제에서는 F_RUNTIME > 100 이라고 조건을 주었습니다.
7. Breakpoints를 만든 상태에서 계속 실행(F8)을 진행하면 실행되다가 해당 조건식에 맞는 경우 39행에 중단점이 걸리면서 실행이 멈추는 것을 확인할 수 있습니다.
ABAP Debugger 화면에서 Watchpoints를 사용하여 조건부 중단점 설정하기
▶ Breakpoints는 조건에 맞는 경우 지정된 행으로 중단점이 한번 걸리는 것으로 끝나지만,
Watchpoints는 조건이 맞는 부분이 나오면 반복적으로 중단점이 걸린다는 차이점이 있습니다.
1. 디버깅 화면에서 Break./Watchpoints 탭을 선택 합니다.
2. 다시 내부 탭 중에 Watchpoints 탭을 선택 합니다.
3. 새로운 Watchpoints 중단점을 만들기 위해 생성 아이콘을 클릭해 줍니다.
4. Variable에 조건 식에 사용할 변수를 입력 합니다.
5. Condition에 조건 식을 입력 합니다.
이렇게 설정해 놓으면 F_RUNTIME이 사용되는 여러 곳에서 값이 100 보다 큰 경우 해당 위치에 실행이 멈추게 된다.
정확히는 F_RUNTIME 변수가 사용된 그 다음 행에서 멈추게 됩니다.
※ 필요에 따라 Breakpoints, Watchpoints를 여러개 설정해서 활용도를 높일수도 있다.
※ 함께 읽으면 도움이 될 만한 다른 포스팅 글입니다.
- SAP ABAP의 Runtime Error(Dump Analysis) 목록 조회 및 오류 위치 확인 방법
- ABAP Dictionary의 테이블유지보수생성기로 테이블 유지보수 다이얼로그를 생성하고 활용하는 방법
- SAP에서 저장한 파일을 엑셀로 바로 열 때 특정 셀이 뭉쳐지는 현상을 해결하는 방법
- SAP의 텍스트오브젝트 및 ID를 만들고 텍스트를 읽고 저장하는 방법-Long Text 사용방법
- ABAP에서 인덱스(Index)를 사용하여 실행 시간을 단축 시키는 방법 – 튜닝(Tuning) 가이드
- ABAP 편집기의 꾸민 프린트(소스 정렬)를 활용하여 프로그램 가독성 높이기 방법
이 글이 도움이 되었기를 바랍니다. ^-^