부록B. Debug Tool이 소스, 목록 또는 별도의 디버그 파일을 찾는 방법

Debug Tool은 다음 소스를 검색하여 컴파일 단위(CU)에 관해 필요한 정보(일명 디버그 정보)를 얻습니다.

모든 경우에 각 CU, 로드 모듈 또는 DLL과 연관된 기본 데이터셋명이 있습니다. 이 기본 이름이 생성되는 방법은 사용된 소스 언어 및 컴파일러에 따라 다릅니다. 각 컴파일러가 기본 이름을 생성하는 방법에 대해 학습하려면 컴파일러의 프로그래밍 안내서 또는 사용자 안내서를 참조하십시오.

Debug Tool이 다음 소스 중 하나에서 소스 또는 목록 데이터, 별도의 디버그 파일 데이터 또는 EQALANGX 데이터를 얻을 수 있습니다.

C 및 C++ CU의 경우, CU 작성 방법 및 EQAOPTS MDBG 명령에 지정한 값에 따라 Debug Tool은 다른 소스에서 소스 데이터 및 별도의 디버그 파일 데이터를 가져올 수 있습니다.12 다음 조건에서 작성되고 디버그된 CU의 경우, Debug Tool은 소스 파일에서 소스 데이터를 가져오고 .dbg 파일에서 별도의 디버그 파일 데이터를 가져옵니다.

Debug Tool은 다음 소스 중 하나에서 소스 파일을 얻습니다.

Debug Tool이 다음 소스 중 하나에서 .dbg 파일을 얻습니다.

다음 조건에서 작성 및 디버그된 C 및 C++ CU의 경우, Debug Tool은 .mdbg 파일에서 소스 데이터 및 별도의 디버그 파일 데이터를 가져옵니다.

Debug Tool이 다음 소스 중 하나에서 .mdbg 파일을 얻습니다.

각 파일 유형(소스, 목록, 별도의 디버그 파일, .dbg 또는 .mdbg)의 경우, Debug Tool이 서로 다른 순서로 소스를 통해 검색합니다. 이 장에 있는 나머지 주제에서는 순서에 대해 설명합니다.

사용자 환경에서 EQAUEDAT 사용자 EXIT을 사용하는 경우, Debug Tool이 해당 파일을 찾으면 사용자 EXIT에 제공된 이름이 우선순위를 갖습니다.

.dbg 및 .mdbg 파일의 경우, Debug Tool이 올바른 .dbg 또는 .mdbg 파일을 찾을 때까지 소스를 검색하지 않습니다.

Debug Tool이 소스 및 목록 파일을 찾는 방법

CU에 관한 정보를 표시해야 하는 경우마다 Debug Tool이 각 CU에 대한 소스 또는 목록 파일을 읽습니다. 사용자가 CU를 디버깅하는 중에 파일이 읽히며 데이터셋은 변경할 수 있습니다. Debug Tool이 소스 또는 목록 파일을 읽어야 할 때마다 다음 순서로 데이터셋을 검색합니다.

  1. SET SOURCE 명령
  2. SET DEFAULT LISTINGS 명령. EQAUEDAT 사용자 EXIT이 구현되고 EQADEBUG DD문이 지정되지 않으면 EQAUEDAT 사용자 EXIT으로 데이터셋명을 수정할 수 있습니다.
  3. 있는 경우에 한해, EQADEBUG DD문
  4. 기본 데이터셋명. EQAUEDAT 사용자 EXIT이 구현되고 EQADEBUG DD문이 지정되지 않으면 EQAUEDAT 사용자 EXIT으로 데이터셋명을 수정할 수 있습니다.

Debug Tool이 COBOL 및 PL/I 별도의 디버그 파일 파일을 찾는 방법

Debug Tool이 COBOL 또는 PL/I 별도의 디버그 파일에서 두 번 이상 읽어야 하는 경우가 있지만 항상 동일한 데이터셋에서 별도의 디버그 파일을 읽습니다. Debug Tool이 올바른 별도의 디버그 파일을 찾은 다음에는 Debug Tool을 다른 별도의 디버그 파일로 인도할 수 없습니다. CU가 처음 표시될 때 Debug Tool이 다음 순서로 별도의 디버그 파일을 찾습니다.

  1. SET SOURCE 명령
  2. 기본 데이터셋명. EQAUEDAT 사용자 EXIT이 구현되고 EQADEBUG DD문이 지정되지 않으면 EQAUEDAT 사용자 EXIT으로 데이터셋명을 수정할 수 있습니다.
  3. SET DEFAULT LISTINGS 명령. EQAUEDAT 사용자 EXIT이 구현되고 EQADEBUG DD문이 지정되지 않으면 EQAUEDAT 사용자 EXIT으로 데이터셋명을 수정할 수 있습니다.
  4. 있는 경우에 한해, 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 파일을 찾습니다.

  1. SET SOURCE 명령
  2. 프로그램의 이름 및 길이와 일치하는 CSECT를 포함하는 이전에 로드된
    EQALANGX 파일
  3. 기본 데이터셋명. EQAUEDAT 사용자 EXIT이 구현되고 EQADEBUG DD문이 지정되지 않으면 EQAUEDAT 사용자 EXIT으로 데이터셋명을 수정할 수 있습니다.
  4. SET DEFAULT LISTINGS 명령. EQAUEDAT 사용자 EXIT이 구현되고 EQADEBUG DD문이 지정되지 않으면 EQAUEDAT 사용자 EXIT으로 데이터셋명을 수정할 수 있습니다.
  5. EQADEBUG DD문

SET SOURCE 명령은 다음 상황 중에 언제든지 입력할 수 있습니다.

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 컴파일러 옵션, dbgld 명령 및 CDADBGLD 유틸리티에 대해 자세히 학습하려면 z/OS XL C/C++ User’s Guide의 내용을 참조하십시오.

Debug Tool이 C/C++ .mdbg 파일을 찾는 방법

다음 조건에서 Debug Tool이 모듈 맵(.mdbg) 파일에서 디버그 정보 및 소스를 얻을 수 있습니다.

-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 파일을 검색합니다.

  1. 함수 코드 37을 지정하는 EQAUEDAT 사용자 EXIT
  2. EQAUEDAT 사용자 EXIT을 작성하지 않거나 사용자 EXIT에서 파일을 찾을 수 없는 경우 UNIX® System Services, ./load_module_or_DLL_name.mdbg에서 기본 데이터셋명(userid.mdbg(load_module_or_DLL_name)임)

Debug Tool이 .mdbg 파일을 찾을 수 없는 경우, 다음 순서로 다음 명령, DD문 또는 환경 변수의 입력에 따라 .mdbg 파일을 검색합니다.

  1. SET MDBG 명령
  2. SET DEFAULT MDBG 명령
  3. EQAMDBG DD명
  4. EQA_MDBG_PATH 환경 변수

DEBUG 컴파일러 옵션, dbgld 명령 및 CDADBGLD 유틸리티에 대해 자세히 학습하려면 z/OS XL C/C++ User’s Guide의 내용을 참조하십시오.


10.
환경 변수를 지정할 수 있는 상황에서 환경 변수 EQA_USE_MDBG를 YES 또는 NO로 설정할 수 있으며, EQAOPTS MDBG 명령의 설정(기본 설정 포함)을 대체합니다.
11.
환경 변수를 지정할 수 있는 상황에서 환경 변수 EQA_USE_MDBG를 YES 또는 NO로 설정할 수 있으며, EQAOPTS MDBG 명령의 설정(기본 설정 포함)을 대체합니다.
12.
환경 변수를 지정할 수 있는 상황에서 환경 변수 EQA_USE_MDBG를 YES 또는 NO로 설정할 수 있으며, EQAOPTS MDBG 명령의 설정(기본 설정 포함)을 대체합니다.
13.
환경 변수를 지정할 수 있는 상황에서 환경 변수 EQA_USE_MDBG를 YES 또는 NO로 설정할 수 있으며, EQAOPTS MDBG 명령의 설정(기본 설정 포함)을 대체합니다.
14.
환경 변수를 지정할 수 있는 상황에서 환경 변수 EQA_USE_MDBG를 YES 또는 NO로 설정할 수 있으며, EQAOPTS MDBG 명령의 설정(기본 설정 포함)을 대체합니다.
15.
환경 변수를 지정할 수 있는 상황에서 환경 변수 EQA_USE_MDBG를 YES 또는 NO로 설정할 수 있으며, EQAOPTS MDBG 명령의 설정(기본 설정 포함)을 대체합니다.