부록B. Debug Tool이 소스, 목록 또는 별도의 디버그 파일을 찾는 방법
Debug Tool은 다음 소스를 검색하여 컴파일 단위(CU)에 관해 필요한
정보(일명 디버그 정보)를 얻습니다.
- 어떤 경우에는 디버그 정보가 로드 모듈에
저장됩니다. Debug Tool이 소스 또는 목록 파일과 함께 이 정보를
사용하여 화면에 소스 코드를 표시합니다.
- TEST 컴파일러 옵션의 SEPARATE 하위 옵션으로 컴파일된
COBOL 및 PL/I CU의 경우 Debug Tool이 디버그 정보와 소스 코드를 화면에 표시하는 데 필요한 정보를
둘 다 포함하는 독립 파일(일명 별도의 디버그 파일)에 저장된 정보를 사용합니다.
- 다음 조건에서 작성 및 디버그된 C 및 C++ CU의 경우 Debug Tool이
소스 파일과 함께 .dbg 파일에 저장된 디버그 정보를 사용하여 화면에
코드를 표시합니다.
- DEBUG 컴파일러 옵션의 FORMAT(DWARF) 하위 옵션으로
컴파일함
- EQAOPTS MDBG command10에 대해 NO로 지정 또는 기본값 지정
- 다음 조건에서 작성 및 디버그된 C 및 C++ CU의 경우, Debug Tool이
.mdbg 파일에 저장된 소스 코드 및 디버그 정보를 사용하여
화면에 소스 코드를 표시합니다.
- DEBUG 컴파일러 옵션의 FORMAT(DWARF) 하위 옵션으로
컴파일함
- z/OS® XL C/C++,
버전 1.10 이상과 컴파일
- CDADBGLD 유틸리티의 CAPSRC 옵션 또는 dbgld 명령의 -c 옵션을
사용하여 로드 모듈 또는 DLL의 저장된(캡처된) 소스로
.mdbg 파일을 작성함
- EQAOPTS MDBG 명령(Debug Tool이 .mdbg 파일에서 소스 파일 및 .dbg를 찾아야 함)11에 YES 지정
- 어셈블러 및 비Language Environment COBOL CU의 경우, Debug Tool이
디버그 정보 및 화면에 소스 코드를 표시하는 데 필요한 정보
모두 포함하는 개별 파일(EQALANGX 파일이라고도 함)에
저장된 정보를 사용합니다.
모든 경우에 각 CU, 로드 모듈 또는 DLL과 연관된 기본
데이터셋명이 있습니다. 이 기본 이름이 생성되는 방법은 사용된
소스 언어 및 컴파일러에 따라 다릅니다. 각 컴파일러가 기본
이름을 생성하는 방법에 대해 학습하려면 컴파일러의 프로그래밍
안내서 또는 사용자 안내서를 참조하십시오.
Debug Tool이 다음 소스 중 하나에서 소스 또는 목록 데이터, 별도의 디버그 파일
데이터 또는 EQALANGX 데이터를 얻을 수 있습니다.
- 기본 데이터셋명
- SET SOURCE 명령
- SET DEFAULT LISTINGS 명령
- EQADEBUG DD문
C 및 C++ CU의 경우, CU 작성 방법 및 EQAOPTS MDBG 명령에 지정한 값에 따라
Debug Tool은 다른 소스에서 소스 데이터 및 별도의 디버그 파일 데이터를 가져올 수 있습니다.12 다음 조건에서 작성되고 디버그된 CU의 경우, Debug Tool은 소스 파일에서 소스 데이터를 가져오고 .dbg 파일에서 별도의 디버그 파일 데이터를 가져옵니다.
- DEBUG 컴파일러 옵션의 FORMAT(DWARF) 하위 옵션으로
컴파일함
- EQAOPTS MDBG 명령13에 대해 NO로 지정
Debug Tool은 다음 소스 중 하나에서 소스 파일을
얻습니다.
- 기본 데이터셋명
- SET SOURCE 명령
- SET DEFAULT LISTINGS 명령
- EQAUEDAT 사용자 EXIT(함수 코드 3
지정)
- EQADEBUG DD명
- EQA_SRC_PATH 환경 변수
Debug Tool이 다음 소스 중 하나에서 .dbg 파일을 얻습니다.
- 기본 데이터셋명
- EQADBG DD문
- EQAUEDAT 사용자 EXIT(함수 코드 35
지정)
- EQADBG DD명
- EQA_DBG_PATH 환경 변수
- SET DEFAULT DBG 명령
다음 조건에서 작성 및 디버그된 C 및 C++ CU의 경우, Debug Tool은
.mdbg 파일에서 소스 데이터 및 별도의 디버그 파일 데이터를 가져옵니다.
- DEBUG 컴파일러 옵션의 FORMAT(DWARF) 하위 옵션으로
컴파일함
- z/OS XL C/C++,
버전 1.10 이상과 컴파일
- CDADBGLD 유틸리티의 CAPSRC 옵션 또는 dbgld 명령의 -c 옵션을
사용하여 로드 모듈 또는 DLL의 저장된(캡처된) 소스로
.mdbg 파일을 작성함
- EQAOPTS MDBG 명령(Debug Tool이 .mdbg 파일에서 .dbg 파일을 검색해야 함)14에 YES 지정
Debug Tool이 다음 소스 중 하나에서 .mdbg 파일을 얻습니다.
- 기본 데이터셋명
- SET MDBG 명령
- SET DEFAULT MDBG 명령
- EQAUEDAT 사용자 EXIT(함수 코드 37 지정)
- EQAMDBG DD명
- EQA_MDBG_PATH 환경 변수
각 파일 유형(소스, 목록, 별도의 디버그 파일, .dbg 또는 .mdbg)의
경우, Debug Tool이 서로 다른 순서로 소스를 통해
검색합니다. 이 장에 있는 나머지 주제에서는 순서에 대해 설명합니다.
사용자 환경에서 EQAUEDAT 사용자 EXIT을 사용하는 경우,
Debug Tool이 해당 파일을 찾으면 사용자 EXIT에 제공된 이름이
우선순위를 갖습니다.
.dbg 및 .mdbg 파일의 경우, Debug Tool이 올바른 .dbg 또는 .mdbg
파일을 찾을 때까지 소스를 검색하지 않습니다.
Debug Tool이 소스 및 목록 파일을 찾는 방법
CU에 관한 정보를 표시해야 하는 경우마다 Debug Tool이 각 CU에 대한 소스 또는 목록 파일을
읽습니다. 사용자가 CU를 디버깅하는 중에 파일이 읽히며 데이터셋은 변경할 수
있습니다. Debug Tool이 소스 또는 목록 파일을 읽어야 할 때마다 다음 순서로 데이터셋을 검색합니다.
- SET SOURCE 명령
- SET DEFAULT LISTINGS 명령. EQAUEDAT 사용자 EXIT이 구현되고
EQADEBUG DD문이 지정되지 않으면 EQAUEDAT 사용자 EXIT으로
데이터셋명을 수정할 수 있습니다.
- 있는 경우에 한해, EQADEBUG DD문
- 기본 데이터셋명. EQAUEDAT 사용자 EXIT이 구현되고
EQADEBUG DD문이 지정되지 않으면 EQAUEDAT 사용자 EXIT으로
데이터셋명을 수정할 수 있습니다.
Debug Tool이 COBOL 및 PL/I 별도의 디버그 파일 파일을 찾는 방법
Debug Tool이 COBOL 또는 PL/I 별도의 디버그 파일에서 두 번 이상 읽어야 하는 경우가
있지만 항상 동일한 데이터셋에서 별도의 디버그 파일을 읽습니다. Debug Tool이 올바른
별도의 디버그 파일을 찾은 다음에는 Debug Tool을 다른 별도의 디버그 파일로 인도할 수 없습니다.
CU가 처음 표시될 때 Debug Tool이 다음 순서로 별도의 디버그 파일을 찾습니다.
- SET SOURCE 명령
- 기본 데이터셋명. EQAUEDAT 사용자 EXIT이 구현되고
EQADEBUG DD문이 지정되지 않으면 EQAUEDAT 사용자 EXIT으로
데이터셋명을 수정할 수 있습니다.
- SET DEFAULT LISTINGS 명령. EQAUEDAT 사용자 EXIT이 구현되고
EQADEBUG DD문이 지정되지 않으면 EQAUEDAT 사용자 EXIT으로
데이터셋명을 수정할 수 있습니다.
- 있는 경우에 한해, EQADEBUG DD문
SET SOURCE 명령은 CU 이름이 CU로 표시되고
별도의 디버그 파일이 어떤 다른 위치에서도 발견되지 않은 경우에만
입력할 수 있습니다.
SET DEFAULT LISTINGS 명령은 CU 이름이 CU로 표시되기 전
언제든지 입력할 수 있습니다. 또는 별도의 디버그 파일이 가능한 어떤 다른 위치에서도 발견되지 않은 경우에는
나중에 입력할 수 있습니다.
Debug Tool이 EQALANGX 파일을 찾는 방법
어셈블러 또는 비Language Environment COBOL 프로그램에 대한 디버그 정보가 있는 EQALANGX 파일은
두 번 이상 읽을 수 있으나 항상 동일한 데이터셋에서 읽습니다. Debug Tool이 올바른
EQALANGX 파일을 찾은 다음에는 Debug Tool을 다른 EQALANGX 파일로 인도할 수 없습니다.
LOADDEBUGDATA(LDD) 명령(즉시 실행되거나 지정된 CU가 Debug Tool에 알려질 때 실행됨)을 입력한 후에는
Debug Tool이 다음 순서로 EQALANGX 파일을 찾습니다.
- SET SOURCE 명령
- 프로그램의 이름 및 길이와 일치하는 CSECT를 포함하는 이전에 로드된
EQALANGX 파일
- 기본 데이터셋명. EQAUEDAT 사용자 EXIT이 구현되고
EQADEBUG DD문이 지정되지 않으면 EQAUEDAT 사용자 EXIT으로
데이터셋명을 수정할 수 있습니다.
- SET DEFAULT LISTINGS 명령. EQAUEDAT 사용자 EXIT이 구현되고
EQADEBUG DD문이 지정되지 않으면 EQAUEDAT 사용자 EXIT으로
데이터셋명을 수정할 수 있습니다.
- EQADEBUG DD문
SET SOURCE 명령은 다음 상황 중에 언제든지 입력할 수 있습니다.
- CU 이름이 디스어셈블리 CU로 표시된 후
- CU가 알려진 경우, LDD 명령이 입력되었으나 Debug Tool이 EQALANGX 파일을 찾지 못할 때
- CU가 Debug Tool에 알려지지 않은 경우, LDD 명령이 입력되었으며
CU가 Debug Tool에 알려진 다음 Debug Tool이 LDD를 실행할 때
SET DEFAULT LISTINGS 명령은 사용자가 LDD 명령을 입력하기 전에 언제든지 입력할 수
있습니다. 또는 EQALANGX 파일이 LDD 명령에 의해 발견되지 않은 경우에는
사용자가 LDD 명령을 입력한 후에 가능합니다.
Debug Tool이 C/C++ 소스 파일 및 .dbg 파일을 찾는 방법
DEBUG 컴파일러 옵션의 FORMAT(DWARF) 및 FILE 하위 옵션과 컴파일하고 EQAOPTS MDBG명령15에 NO를 지정하는 경우, Debug Tool에 소스 파일 및 .dbg 파일이 필요합니다. 다음 목록에서는 Debug Tool이 해당 파일을 검색하는 방법에 대해
설명합니다.
- Debug Tool이 소스 코드를 표시해야 할 때마다 CU의 소스 파일을
읽습니다. Debug Tool이 컴파일러가 로드 모듈 또는 DLL에 저장한
이름을 사용하여 소스 파일을 검색합니다. 소스 파일을 다른
위치로 이동하면 Debug Tool이 다음 순서로 다음 명령, 사용자
EXIT 또는 환경 변수에서 입력에 따라 소스 파일을
검색합니다.
- 전체 화면 모드에서 SET SOURCE 명령
- 원격 디버그 모드에서 EQA_SRC_PATH 환경 변수 또는 편집기
보기에서 텍스트 파일 변경 조치에
입력한 내용
- EQADEBUG DD명
- 함수 코드 3을 지정하는 EQAUEDAT 사용자 EXIT. EQADEBUG DD명을
지정하는 경우, EQAUEDAT 사용자 EXIT이 실행되지 않습니다.
- SET DEFAULT LISTINGS 명령
- Debug Tool이 .dbg 파일을 두 번 이상 읽어야 하는 경우가 있지만
항상 동일한 데이터셋에서 이 파일을 읽습니다. Debug Tool이 이 파일을
찾고 디버그되는 로드 모듈로 해당 내용을 유효성 검증한 후,
사용자는 Debug Tool을 경로 재지정하여 다른 파일을 검색할 수 없습니다. Debug Tool이
컴파일러가 로드 모듈 또는 DLL에 저장한 이름을 사용하여
.dbg 파일을 검색합니다. .dbg 파일을 다른 위치로 이동하면
Debug Tool이 다음 순서로 다음 명령, 사용자 EXIT 또는 환경 변수에서
입력에 따라 .dbg 파일을 검색합니다.
- 원격 디버그 모드에서 EQA_DBG_PATH 환경 변수
- EQADBG DD명
- 함수 코드 35를 지정하는 EQAUEDAT 사용자 EXIT. EQADBG DD명을
지정하는 경우, EQAUEDAT 사용자 EXIT이 실행되지 않습니다.
- SET DEFAULT DBG 명령
DEBUG 컴파일러 옵션, dbgld 명령 및 CDADBGLD 유틸리티에 대해
자세히 학습하려면 z/OS XL C/C++ User’s Guide의 내용을 참조하십시오.
Debug Tool이 C/C++ .mdbg 파일을 찾는 방법
다음 조건에서 Debug Tool이 모듈 맵(.mdbg) 파일에서 디버그 정보 및
소스를 얻을 수 있습니다.
- 다음 태스크 중 하나를 수행하십시오.
- 사용자 또는 사이트가 EQAOPTS MDBG 명령에
YES를 지정하고 환경 변수를 지원하는 환경의 경우
EQA_USE_MDBG 환경 변수를 NO로 설정하지 않습니다.
- 사용자 또는 사이트가 EQAOPTS MDBG 명령에
NO를 지정하거나 이를 기본값으로 하지만, 환경 변수를 지원하는 환경의 경우
EQA_USE_MDBG 환경 변수를 YES로 설정해서 해당 옵션을 대체합니다.
- z/OS XL
C/C++, 버전 1.10 이상과 프로그램 컴파일
-c 옵션으로 dbgld 명령을 사용하거나 CAPSRC 옵션으로
CDADBGLD 유틸리티를 사용해서 단일 로드 모듈 또는 DDL을 하나의 모듈 맵
파일(.mdbg 파일)로 구성하는 프로그램에 속하는 모든 .dbg 파일 및
소스 파일을 저장(캡처) 합니다. .mdbg 파일을 사용하면
로드 모듈 또는 DLL을 보다 쉽게 디버그할 수 있기 때문에 디버그할
로드 모듈 또는 DLL에 대한 소스를 캡처한 .mdbg 파일을
작성하십시오. 예를 들어,
로드 모듈이 10개의 프로그램으로 구성되고 모듈 맵 파일을 작성하지 않는 경우
10개의 .dbg 파일 및 10개의 소스 파일을
추적해야 합니다. 해당 로드
모듈의 모듈 맵 파일을 작성하는 경우, 하나의 .mdbg 파일을
추적해야 합니다.
Debug Tool이 .mdbg 파일을 두 번 이상 읽어야 하는 경우가 있지만 항상
동일한 데이터셋에서 이 파일을 읽습니다. Debug Tool이 이 파일을
찾고 디버그되는 로드 모듈로 해당 내용을 유효성 검증한 후,
사용자는 Debug Tool을 경로 재지정하여 다른 파일을 검색할 수 없습니다. Debug Tool이
다음 순서로 다음 명령, 사용자 EXIT 또는 환경 변수에서
입력에 따라 .mdbg 파일을 검색합니다.
- 함수 코드 37을 지정하는 EQAUEDAT 사용자 EXIT
- EQAUEDAT 사용자 EXIT을 작성하지 않거나 사용자 EXIT에서
파일을 찾을 수 없는 경우 UNIX® System Services, ./load_module_or_DLL_name.mdbg에서
기본 데이터셋명(userid.mdbg(load_module_or_DLL_name)임)
Debug Tool이 .mdbg 파일을 찾을 수 없는 경우, 다음 순서로
다음 명령, DD문 또는 환경 변수의 입력에 따라
.mdbg 파일을 검색합니다.
- SET MDBG 명령
- SET DEFAULT MDBG 명령
- EQAMDBG DD명
- EQA_MDBG_PATH 환경 변수
DEBUG 컴파일러 옵션, dbgld 명령 및 CDADBGLD 유틸리티에 대해
자세히 학습하려면 z/OS XL C/C++ User’s Guide의 내용을 참조하십시오.
환경
변수를 지정할 수 있는 상황에서 환경 변수
EQA_USE_MDBG를 YES 또는 NO로 설정할 수 있으며,
EQAOPTS MDBG 명령의 설정(기본 설정 포함)을 대체합니다.
환경
변수를 지정할 수 있는 상황에서 환경 변수
EQA_USE_MDBG를 YES 또는 NO로 설정할 수 있으며,
EQAOPTS MDBG 명령의 설정(기본 설정 포함)을 대체합니다.
환경
변수를 지정할 수 있는 상황에서 환경 변수
EQA_USE_MDBG를 YES 또는 NO로 설정할 수 있으며,
EQAOPTS MDBG 명령의 설정(기본 설정 포함)을 대체합니다.
환경
변수를 지정할 수 있는 상황에서 환경 변수
EQA_USE_MDBG를 YES 또는 NO로 설정할 수 있으며,
EQAOPTS MDBG 명령의 설정(기본 설정 포함)을 대체합니다.
환경
변수를 지정할 수 있는 상황에서 환경 변수
EQA_USE_MDBG를 YES 또는 NO로 설정할 수 있으며,
EQAOPTS MDBG 명령의 설정(기본 설정 포함)을 대체합니다.
환경
변수를 지정할 수 있는 상황에서 환경 변수
EQA_USE_MDBG를 YES 또는 NO로 설정할 수 있으며,
EQAOPTS MDBG 명령의 설정(기본 설정 포함)을 대체합니다.