SAP Debugger Call Stack Tool 사용법

SAP Debugger Call Stack 기능 사용 방법에 대해서 정리해 보았습니다.

Stack은 어떠한 물건을 차곡차곡 쌓아둠을 의미합니다.

즉 가장 ‘나중에’ 쌓은 물건이 가장 위에 위치하게 되겠죠. 비단 SAP ABAP 뿐만 아니라, C, C++, Java, Delphi 등 모든 프로그램은 실행 단계를 Call Stack 이란 개념으로 관리하게 됩니다.

즉, 순서대로 물건을 쌓는 것처럼, 순차적으로 처리를 끝내고 자신을 호출한 쪽으로 되돌아 가게 됩니다. 이러한 Stack 구조 형태로 보여주는 Debug View가 Call Stack 입니다.

ABAP 디버깅시 CALL STACK 기능

Call Stack 기능은 SAP ABAP 프로그램을 디버깅할 때 로직이 수행한 순서대로 순차적으로 내용을 확인하고자 할 때 유용하게 사용할 수 있습니다.

참고로 SAP ABAP 디버깅에 대한 좀 더 자세한 사항을 아래의 내용을 참고하시면 됩니다.

ABAP 디버거 BREAK POINTS 메뉴 사용법 및 예제
abap break point 디버깅 방법 및 종류(Static, Dynamic)
ABAP 백그라운즈잡 디버깅 방법(SM37)

Call Stack Tool의 활용

Call stack 기능은 ABAP 디버깅시에 활성화 됩니다.

Call Stack 기능을 통해서는 기본적으로 로직의 전체적인 흐름을 찾기에 편리합니다.

특히, BREAK POINT 위치 선정시 매우 유용한데요, 스탠다드 소스나 복잡한 프로그램에서 BREAK POINT 위치를 명시적으로 찾고자 할 때에는 실행되는 STACK 순서를 거꾸로 거슬러 올라가며 확인해 볼 수 있기 때문입니다.

스택 순서의 확인

일반적으로 먼저 실행된 모듈은 밑으로 가장 최근에 실행된 모듈은 가장 위에 위치하게 됩니다.

call stack 순서를 더블클릭하면 해당 모듈로 소스 이동

위의 Call Stack에 쌓인 결과는 아래의 내용을 의미합니다.

  • PAI 1000번 스크린이 가장 먼저 실행(1)이 되었고,
  • 그 다음으로 PAI Module이 실행(2)이 되었습니다.
  • 가장 먼저 리포트를 실행하게 되면 START-OF-SELECTION. 이벤트를 타게 되는데,
  • 해당 이벤트 구문 내에서 FORM PROCESS_DATA.(4)를 호출합니다.
  • 마지막으로, FORM PROCESS_DATA 내에서는 FORM SELECT_DATA.(5) 호출하고 현재 해당 FORM문을 Debugging 중입니다.

스택 사이의 이동

각 Stack 라인을 더블 클릭하면 해당 Stack Form 시작으로 이동할 수 있습니다.

이동한 즉시 Stack Pointer(화살표)가 해당 Stack 라인으로 이동되며, 현재 화살표 및 소스 모두 Start-of-Selection 위치로 보여주고 있습니다.

call stack 클릭시 해당 소스 위치로 이동

Navigate to Editor

Navigation 기능을 사용하면 해당 Source 가 새창으로 열립니다.

예를 들어 3번째 스택의 Navigation 아이콘을 누르게 되면 다음과 같이 해당 소스의 Editor가 새로운 창으로 열립니다.

ABAP CALL STACK Navigate to Editor 기능

스테이터스 바에 다음과 같은 메세지가 보이며 해당 Program이 열리게 됩니다.

New window opened for source code display

소스 라인 정보

해당 프로그램 혹은 Include 파일의 라인 위치를 알 수 있습니다.

CALL STACK에서 코드 내에 소스 코드 라인

Call Stack 을 통한 디버그의 가장 큰 장점은, 디버그 중에 프로그램 전체의 흐름을 파악할 수 있다는 점입니다.

그러니 Variables 외에도, Call Stack View를 켜 두시면 디버깅시에 유용하게 사용할 수 있습니다.

Call Stack 기능 옵션

디버거가 활성화된 상태에서 Call Stack View 옵션을 설정할 수 있습니다.

메뉴 > Settings > Customizing > call stack 탭  

아밥 디버거 CALL STACK 설정

  • A: ABAP 프로그램만 추적
  • D : Dynpro 프로그램만 추적
  • B: ABAP AND Dynpro 둘 다 추적

이상으로 SAP ABAP Debugger에서 Call Stack 사용법을 알아보았습니다. 프로그램 디버깅시에 유용하게 사용하시기 바랍니다.

Call Stack Tool에 대한 SAP 공식 문서는 아래의 문서를 참고해 볼 수 있습니다.

Stack (SAP Library – ABAP – Analysis Tools)

함께 보면 좋은 글

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

ABAP MATCHCODE, 아밥 스크린 Search Help

SAP ABAP SY 시스템 변수 정리, SY-SUBRC 등