2.1.73. --list

이 옵션은 소스 파일에 대한 원시 목록 정보를 생성하도록 컴파일러에 지시합니다. 원시 목록 파일의 이름은 기본적으로 파일 확장명이 .lst인 입력 파일의 이름입니다.

명령 행에 여러 개의 소스 파일을 지정하면 지정한 파일 중에 첫 번째 파일에 대해서만 원시 목록 정보가 생성됩니다.

사용법

일반적으로 원시 목록 정보는 형식이 지정된 목록을 생성하는 데 사용됩니다. 원시 목록 파일에는 원시 소스 행, include 파일의 내외부 전이에 대한 정보 및 컴파일러에서 생성된 진단이 포함되어 있습니다. 목록 파일의 각 행은 행 유형을 식별하는 다음 키 문자로 시작합니다.

N

소스의 기본 행입니다. 행의 나머지 부분은 소스 행의 텍스트입니다.

X

소스의 기본 행이 확장된 형식입니다. 행의 나머지 부분은 행의 텍스트입니다. 이 행은 행에 중요한 수정 사항이 있는 경우에만 N 행 다음에 표시됩니다. 주석은 사소한 수정 사항으로 간주되고 매크로 확장, 행 연결 및 3중 음자는 중요한 수정사항으로 간주됩니다. 확장된 형식의 행에서 주석은 하나의 공백으로 바뀝니다.

S

#if 등으로 건너뛴 소스 행입니다. 행의 나머지 부분은 텍스트입니다.

Note

건너뛰기를 끝내는 #else, #elseif 또는 #endifN으로 표시됩니다.

L

소스 위치 변경을 나타냅니다. 즉, 행에 사전 처리기에 의한 # line-identifying 지시문 출력과 비슷한 다음과 같은 형식이 있습니다.

L line-number "filename" key

여기서 key는 다음 중 하나일 수 있습니다.

1

include 파일로 들어가기

2

include 파일에서 나가기

이외에는 key가 생략됩니다. 원시 목록 파일의 첫 행은 항상 기본 입력 파일을 식별하는 L 행입니다. L 행은 #line 지시문의 출력이기도 하며, 여기서 key는 생략됩니다. L 행은 원시 목록 파일에서 다음 소스 행의 소스 위치를 나타냅니다.

R/W/E

다음과 같이 진단을 나타냅니다.

R

설명을 나타냅니다.

W

경고를 나타냅니다.

E

오류를 나타냅니다.

행에는 다음과 같은 양식이 있습니다.

type "filename" line-number column-number message-text

여기서 typeR, W 또는 E일 수 있습니다.

파일 끝에 표시된 오류는 기본 소스 파일의 마지막 행 및 0의 열 번호를 나타냅니다.

명령 행 오류는 "<command line>" 의 파일 이름으로 인한 오류입니다. 행 또는 열 번호가 오류 메시지에 표시되지 않습니다.

내부 오류는 일반적으로 위치 정보 및 (Internal fault)로 시작하는 메시지 텍스트로 인한 오류입니다.

진단 메시지가 오버로드된 호출에서의 모호함으로 인한 모든 경쟁 루틴과 같은 목록을 표시하면 첫 진단 행 뒤에는 완전히 동일한 형식의 행이 하나 이상 따라옵니다. 그러나 코드 문자는 첫 번째 행에 있는 코드 문자의 소문자 버전입니다. 이 행의 소스 위치는 해당하는 첫 번째 행에 있는 위치와 같습니다.

예제

/* main.c */
#include <stdbool.h>

int main(void)
{
    return(true);
}

--list 옵션을 사용하여 이 코드를 컴파일하면 다음과 같은 원시 목록 파일이 생성됩니다.

L 1 "main.c"
N#include <stdbool.h>
L 1 "...\include\...\stdbool.h" 1
N/* stdbool.h */
N
...
N  #ifndef __cplusplus /* In C++, 'bool', 'true' and 'false' and keywords */
N    #define bool _Bool
N    #define true 1
N    #define false 0
N  #endif
...
L 2 "main.c" 2
N
Nint main(void)
N{
N   return(true);
X   return(1);
N}

추가 참고

Copyright © 2007 ARM Limited. All rights reserved.ARM DUI 0348AK
Non-Confidential