📘 오류 수정 - ABAP Debugger 사용법
✅ ABAP Debugger란?
ABAP Debugger는 프로그램을 실행 중에 오류를 분석하고 데이터 값을 실시간으로 확인 및 수정할 수 있는 디버깅 도구이다.
디버거를 통해 프로그램의 흐름을 제어하고, 변수 값을 확인하거나 수정하여 프로그램을 테스트할 수 있다.
✅ Debugging 화면 띄우는 4가지 방법
1️⃣ Program 우측 클릭 → Execute → Debugging 선택
- 프로그램 목록에서 우클릭 후, Execute를 선택하고 Debugging을 활성화한다.
2️⃣ Break Point 설정 후 F8 실행
- 멈추고 싶은 위치의 칼럼(줄)을 클릭하여 STOP 아이콘(네모 아이콘)을 설정한다.
- 이후 F8 키를 눌러 프로그램을 실행하면 지정된 위치에서 멈춤.
3️⃣ System 메뉴 → Utilities → Debug ABAP 선택
- SAP 화면 상단 메뉴에서 System → Utilities → Debug ABAP를 선택하여 디버깅을 활성화한다.
4️⃣ /h 입력 후 F8 실행
- SAP 명령어 입력란에 /h를 입력하면 “Debugging Switched on” 메시지가 뜬다.
- 이후 값을 입력하고 F8을 눌러 디버깅 모드로 진입한다.
✅ Debugging 화면에서 할 수 있는 주요 기능
- 프로그램 진행, 멈춤, 패스 등의 기능은 디버깅 화면의 왼쪽 위 버튼을 통해 제어할 수 있다.
- ▶ (Continue): 프로그램을 다음 단계로 진행.
- ⏸ (Pause): 프로그램 일시 정지.
- ⏭ (Step Over): 다음 명령어로 건너뜀.
✅ Data Object 확인 및 변수 값 변경
1️⃣ Data Object 클릭
- 디버깅 화면에서 변수(Data Object)를 클릭하면 해당 변수와 현재 할당된 데이터 값을 확인할 수 있다.
2️⃣ 변수 값 변경 및 테스트 가능
- 디버깅 중 변수 값을 직접 수정하고, 프로그램 흐름을 다시 실행할 수 있다.
- 값 수정 후 F8 키를 눌러 변경된 값으로 프로그램을 테스트한다.
✅ 핵심 단축키 요약
기능 단축키 설명
디버깅 실행 | /h | Debugging Switched on 메시지 출력 |
프로그램 실행 | F8 | 디버깅 모드에서 프로그램 실행 |
일시 정지 | ⏸ (Pause) | 프로그램 실행 중 일시 정지 |
다음 단계로 진행 | ▶ (Continue) | 다음 명령어로 이동 |
변수 값 수정 | Data Object 클릭 | 실시간 변수 값 확인 및 수정 |
✅ Debugging 과정 요약
1️⃣ 디버깅 모드 진입:
- /h 입력 또는 Execute → Debugging 선택.
2️⃣ Break Point 설정:
- 멈추고 싶은 위치에 STOP 아이콘 설정 후 F8 실행.
3️⃣ 디버깅 화면 제어:
- 왼쪽 상단 버튼을 통해 프로그램 실행, 일시 정지, 단계 이동 등을 제어.
4️⃣ Data Object 확인 및 변수 값 수정:
- Data Object 클릭하여 변수 값 확인 및 수정 가능.
- 값 수정 후 F8을 눌러 테스트.
💡 Tip: Debugging 활용 시 유의사항
- 디버깅 중 변수 값을 수정할 수 있으나, 변경된 값은 프로그램 종료 시 초기화된다.
- Break Point는 프로그램 실행 중 지정된 줄에서 멈추기 위한 장치로, 개발 및 오류 수정 시 필수적이다.
- F8은 프로그램을 연속 실행할 때 사용되며, 변수 값 변경 후 반드시 F8을 눌러 결과를 확인한다.
✅ Debugging 예시 코드
REPORT ZDEBUG_EXAMPLE.
DATA: lv_num TYPE i VALUE 0.
DO 5 TIMES.
lv_num = lv_num + 1.
WRITE: / 'Number:', lv_num.
ENDDO.
➡️ 디버깅 과정:
- lv_num = lv_num + 1. 줄에 Break Point 설정.
- F8을 눌러 디버깅 모드 진입.
- Data Object를 클릭하여 lv_num 값을 확인 및 수정.
- 값 수정 후 F8을 눌러 결과 확인.
'SAP ABAP > 기본' 카테고리의 다른 글
서브루틴 (Subroutine)과 파라미터 전달 방식 (CALL BY REFERENCE / RESULT / VALUE / USING / CHANGING) (0) | 2025.01.21 |
---|---|
서브루틴(Subroutine) vs 펑션 모듈(Function Module) – 차이점 비교 (0) | 2025.01.19 |
메시지 클래스 - Dialog Messages (0) | 2025.01.15 |
ABAP Statements | Loop문 (Do & While), 시스템 오류 (0) | 2025.01.15 |
ABAP Statements | IF 조건문 (0) | 2025.01.15 |