2.2.10. 이미지 관련 정보 생성

다음 옵션은 이미지에 대한 정보를 추출하고 나타내는 방법을 제어합니다.

--callgraph

함수의 정적 콜 그래프를 HTML 형식으로 만듭니다. 콜 그래프는 이미지에 있는 모든 함수에 대한 정의와 참조 정보를 제공합니다.

Note

링커가 함수 스택 크기를 계산하는 경우 모든 어셈블러 파일에는 PROC/ENDPFRAME PUSH/POP 지시문이 포함되어야 합니다.

각 함수 func에 대해 링커는 다음을 나열합니다.

  • 함수가 컴파일되는 프로세서 상태(ARM 또는 Thumb)

  • func를 호출하는 함수 세트

  • func가 호출하는 함수 세트

  • 이미지에서 func의 주소가 사용되는 횟수

또한, 콜 그래프는 다음과 같은 함수를 식별합니다.

  • 인터워킹 및 비니어를 통해 호출되는 함수

  • 이미지 외부에서 정의된 함수

  • 정의되지 않은 상태로 유지될 수 있는 함수(weak 참조)

정적 콜 그래프는 스택 사용량에 대한 정보도 표시합니다. 다음 정보를 나열합니다.

  • 각 함수가 사용하는 스택 프레임의 크기

  • 호출 시퀀스에 걸쳐, 즉 함수 호출의 순환 체인에 걸쳐 함수가 사용하는 스택의 최대 크기

주기가 있거나 링커에서 호출 체인에 스택 크기 정보가 없는 함수를 발견하면 + Unknown이 스택 사용량에 추가됩니다. 스택 사용량을 알 수 없는 이유가 추가됩니다.

링커는 함수에 대한 디버그 프레임 정보가 없는 경우 누락된 스택 프레임 정보를 보고합니다.

간접 함수의 경우, 링커는 간접 호출을 한 함수를 신뢰성 있게 확인할 수 없습니다. 이것이 호출 체인에 대해 최대 스택 사용량이 계산되는 방법에 영향을 미칠 수 있습니다.

어셈블리 언어 코드의 프레임 지시문을 사용하여 코드가 스택을 사용하는 방법을 설명합니다. 이러한 지시문은 디버거가 스택 해제 또는 프로파일링을 수행하는 데 필요한 디버그 프레임 정보가 있는지 확인합니다.

스택 사용량을 확인하는 방법에 대한 자세한 내용은 RealView Compilation Tools 버전 3.0 핵심 설명서에서 지시문 참조에 대해 설명하는 장을 참조하십시오.

--feedback file

다음에 파일을 컴파일할 때 사용하지 않는 함수에 대해 컴파일러에 알려 주는 피드백 파일을 생성합니다.

다음에 파일을 컴파일할 때 컴파일러 옵션 --feedback file을 사용하여 사용할 피드백 파일을 지정합니다. 사용하지 않는 함수는 링커에서 나중에 제거할 수 있도록 별도의 섹션에 배치됩니다. 이 파일을 사용하는 방법에 대한 자세한 내용은 링커 피드백을 참조하십시오.

--info topics

지정된 항목에 대한 정보를 표시합니다. 여기서 topics는 쉼표로 구분된 항목 키워드 목록입니다. 항목 키워드는 다음 중 하나일 수 있습니다.

common

이미지에서 제거된 모든 공통 섹션을 나열합니다. 이 옵션의 사용은 --info common,totals를 의미합니다.

debug

--remove를 사용한 결과 이미지에서 제거된 모든 거부된 입력 디버그 섹션을 나열합니다. 이 옵션의 사용은 --info debug,totals를 의미합니다.

inline

링커가 인라이닝하는 함수의 세부 정보를 제공하고 --inline을 사용한 결과인 총 인라인 수를 제공합니다. 분기 인라이닝에 대한 자세한 내용은 분기 인라이닝을 참조하십시오.

libraries

링크 사용량에 대해 자동으로 선택된 모든 라이브러리의 전체 경로 이름을 표시합니다.

이 옵션과 --info_lib_prefix 한정자를 함께 사용하면 특정 라이브러리에 대한 정보를 표시할 수 있습니다. 예를 들어, 다음 옵션을 사용하여 링커가 사용하는 부동 소수점 라이브러리를 확인합니다.

--info libraries --info_lib_prefix=f
sizes

이미지의 각 입력 오브젝트 및 라이브러리 구성원에 대한 코드 및 데이터(RO 데이터, RW 데이터, ZI 데이터 및 디버그 데이터)의 목록을 제공합니다. 이 옵션의 사용은 --info sizes,totals를 의미합니다.

tailreorder

--tailreorder를 사용한 결과 타겟 위로 이동된 마무리 호출 섹션의 세부 정보를 제공합니다. 마무리 호출 섹션 처리에 대한 자세한 내용은 분기 인라이닝을 참조하십시오.

totals

입력 오브젝트 및 라이브러리에 대한 코드 및 데이터(RO 데이터, RW 데이터, ZI 데이터 및 디버그 데이터)의 총계를 제공합니다.

veneers

링커에서 생성한 비니어의 세부 정보를 제공합니다. 비니어에 대한 자세한 내용은 비니어 생성을 참조하십시오.

unused

--remove를 사용한 결과 이미지에서 제거된 모든 사용하지 않는 섹션을 나열합니다.

exceptions

예외 테이블 생성 및 최적화의 세부 정보를 제공합니다.

--info sizes,totals의 출력은 항상 입력 오브젝트 및 라이브러리의 총계에 패딩 값을 포함합니다.

RW 데이터 압축(기본값)을 사용 중이거나 --datacompressor id 옵션을 사용하여 압축기를 지정한 경우 --info sizes,totals의 출력에 Grand Totals의 항목이 포함되어 이미지의 실제 크기를 반영합니다.

Note

목록의 키워드 사이에는 공백이 허용되지 않습니다. 예를 들어, --info sizes,totals를 입력할 수 있지만 --info sizes, totals는 입력할 수 없습니다.

이 정보를 사용하는 방법에 대한 자세한 내용은 이미지에 대한 정보 얻기를 참조하십시오.

--mangled

진단 메시지와 --xref, --xreffrom, --xrefto--symbols 옵션이 생성한 목록에 변환된 C++ 심볼 이름을 표시하도록 링커에 지시합니다.

이 옵션을 선택하면 링커가 C++ 심볼 이름을 자르지 않습니다. 따라서 심볼 이름이 오브젝트 심볼 테이블에 나타나는 대로 표시됩니다.

--unmangled

진단 메시지와 --xref, --xreffrom, --xrefto--symbols 옵션이 생성한 목록에 변환되지 않은 C++ 심볼 이름을 표시하도록 링커에 지시합니다.

이 옵션을 선택하면 링커가 C++ 심볼 이름을 변환하지 않아 해당 이름이 소스 코드에 나타나듯이 표시되도록 합니다. 이것이 기본값입니다.

--map

이미지 맵을 만듭니다. 맵에는 링커 생성 입력 섹션을 포함하여 이미지에 있는 각 로드 영역, 실행 영역 및 입력 섹션의 주소와 크기가 포함됩니다.

--symbols

링크 단계에 사용되는 각 지역 및 전역 심볼과 함께 해당 값을 나열합니다.

Note

매핑 심볼은 여기에 포함되지 않습니다. 출력에 매핑 심볼을 포함하려면 --list_mapping_symbols를 사용하십시오.

--list_mapping_symbols

--symbols가 생성한 출력에 매핑 심볼을 포함합니다.

심볼 테이블에서 매핑 심볼은 ARM 코드, Thumb 코드 및 데이터 사이의 전이를 플래깅하는 데 사용됩니다. 자세한 내용은 ELF for the ARM Architecture[AAELF]를 참조하십시오.

--symdefs file

출력 이미지에서 전역 심볼 정의가 포함된 파일을 만듭니다.

기본적으로 모든 전역 심볼은 symdefs 파일에 작성됩니다. file이라고 하는 symdefs 파일이 이미 존재하면 링커가 이 파일에 이미 나열된 심볼로 출력을 제한합니다.

Note

이 동작을 실행하지 않으려면 링크 단계 전에 기존 symdefs 파일을 삭제해야 합니다.

file이 경로 정보 없이 지정되면 링커가 출력 이미지가 작성되는 디렉토리에서 경로 정보를 검색합니다. 검색되지 않으면 해당 디렉토리에 파일을 만듭니다.

다른 이미지를 링크할 때 심볼 정의 파일을 입력으로 사용할 수 있습니다. 자세한 내용은 다른 이미지의 심볼 액세스를 참조하십 시오.

--xref

입력 섹션 사이의 모든 상호 참조를 나열합니다.

--xrefdbg

입력 디버그 섹션 사이의 모든 상호 참조를 나열합니다.

--xreffrom object(section)

objectsection 입력에서 다른 입력 섹션에 대한 상호 참조를 나열합니다. 이것은 특정 입력 섹션에서의 참조에 관심이 있을 경우 --xref를 사용하여 생성된 목록의 유용한 하위 세트입니다. 둘 이상의 입력 섹션에서의 참조를 나열하려면 이 옵션을 여러 번 실행할 수 있습니다.

--xrefto object(section)

다른 입력 섹션에서 objectsection 입력에 대한 상호 참조를 나열합니다. 이것은 특정 입력 섹션에 대한 참조에 관심이 있을 경우 --xref를 사용하여 생성된 목록의 유용한 하위 세트입니다. 둘 이상의 입력 섹션에 대한 참조를 나열하려면 이 옵션을 여러 번 실행할 수 있습니다.

Copyright © 2002-2006 ARM Limited. All rights reserved.ARM DUI 0206GK
Non-Confidential