AIX용 COBOL 및 AIX용 PL/I 프로그램 디버깅과 관련된 컴파일러 옵션은 다음과 같습니다.
| 컴파일러 옵션 | 정의 |
|---|---|
| -g | 소스 코드의 디버그 정보를 생성하는 컴파일러를 프롬프트합니다. 코드를 디버그하려면 이 옵션을 지정해야 합니다. |
| -qtest | 소스 코드의 디버그 기호 정보를 생성하는 컴파일러를
프롬프트합니다. 코드의 변수를 표시하고 변경하려면 이 옵션을 지정해야
합니다. -qtest를 지정하면 행 정보 외에 기호 정보를 생성하는 -g도 함께 지정됩니다. 참고: -qtest 컴파일러 옵션은
AIX용 PL/I 프로그램 디버깅에 대해서만 연관이 있습니다.
|
이러한 컴파일러 옵션은 AIX용 IBM XL C/C++ 및 Linux용 IBM XL C/C++ 프로그램을 디버깅하는 것과 관련이 있습니다. AIX용 COBOL 및 AIX용 PL/I 프로그램 디버깅에 대해서는 관련이 없습니다.
| 컴파일러 옵션 | 정의 |
|---|---|
| -g | -g는 소스 코드의 디버그 정보를 생성하는 컴파일러를 프롬프트합니다. 코드를 디버그하려면 이 옵션을 지정해야 합니다. 또한 컴파일러는 정해진 수준의 디버그 기능을 유지하면서 실행 파일 크기를 줄이거나 특히, -O2 옵션과 결합된 경우에 애플리케이션 성능을 향상하기 위해 이러한 확장 -g 레벨을 지원할 수 있습니다. -g9는 -g 기능을 제공합니다. 디버거를 통해 변수값을 수정하면 메모리에 기록되고 모든 실행 가능 행이 디버거에 의해 스텝될 수 있습니다. -g8은 변수에 대한 디버그 정보를 줄입니다. 디버거를 통한 변수값에 대한 수정은 다시 메모리에 기록될 수 없습니다. 모든 실행 가능 행이 디버거에 의해 스텝될 수 있습니다. -g5는 변수에 대한 디버그 정보를 줄입니다. 디버거를 통한 변수값에 대한 수정은 다시 애플리케이션 메모리에 기록될 수 없습니다. 또한 -g5 옵션은 실행 가능 행에 대해 저장되는 디버그 정보의 양도 줄입니다. 각 기능의 첫 번째 실행 가능 행 및 선택된 제어 플로우 명령문만이 디버거에 의해 스텝될 수 있습니다. 기타 행은 실행 불가능으로 표시되며 디버거가 스텝 스루할 수 없습니다. |
| -qfullpath | 디버그 정보에 추가할 모든 소스 파일의 전체 이름을 생성합니다. 이를 통해 디버거가 소스 파일을 보다 쉽게 찾을 수 있습니다. |
| -qheapdebug | 디버그 힙을 사용할 결과 프로그램을 강제
실행합니다. 힙 손상이 발생하면 디버거가 이를 발견하여 발견된 위치에서
중지할 수 있습니다. 참고: 이 옵션은 AIX에서만 지원됩니다.
|
| -qlinedebug | 코드에서 변수를 볼 수 있는 디버그 정보가 생성되지 않도록 합니다. 결과 실행 파일 특히, C++ 프로그램의 크기를 현저히 감소시킵니다. 코드를 최적화하면 디버거가 변수값을 안전하게 표시할 수 없으므로 이 옵션은 코드를 최적화하는 경우 사용하는 것이 좋습니다. |
| -qtbtable | 모든 함수가 완료된 후에 역추적 테이블 생성을 제어합니다. 코드가 디버그되는 경우 -qtbtable=none을 지정하지 않는 것이 좋습니다. |
| -qdbxextra | 참조되지 않은 유형에 대해 디버그 정보를 포함시키도록 컴파일러를
강제 실행합니다. 이 옵션은 결과 실행 파일의 크기가 매우 커지게 되므로
일반적으로 권장되지 않습니다. 참고: 이 옵션은 AIX에서만 지원됩니다.
|
| -qsmp=noopt | 기본적으로 -qsmp 옵션은 아웃라인 기능(병렬 리젼 내의 코드)에 대한 최적화를 적용합니다. 이러한 최적화는 프로그램 및 디버거 정보 간에 불일치를 생성하며 아웃라인 코드를 실행할 때 디버거가 개인용 및 공유 로컬 변수 둘 다에 대해 잘못된 값을 표시하는 원인이 됩니다. -qsmp 대신 -qsmp=noopt를 사용하면 이러한 최적화를 사용하지 않으며 더 쉽게 병렬 리젼을 디버그할 수 있습니다. |