| HOME / 정보공유 / AIX 명령어 모음

nm
nm nm 명령 nm 명령에는 POWER 기반 플랫폼의 nm 정보와 Itanium 기반 플랫폼의 nm 정보가 포함됩니다. POWER 기반 플랫폼의 nm 명령 목적
오브젝트 파일, 실행가능 파일 및 오브젝트 파일 라이브러리에 있는 기호에 관한 정보를 표시합니다.
구문
nm [ -A ] [ -C ] [ -X {32|64|32_64}] [ -f ] [ -h ] [ -p ] [ -r ] [ -T ] [ -v ] [ -B | -P ] [ -e | -g | -u ] [ -d | -o | -x | -t Format ] File ...
설명
nm 명령은 오브젝트 파일, 실행 파일, 오브젝트 파일 라이브러리 등 지정된 File에 있는 기호에 관한 정보를 표시합니다. 파일에 기호 정보가 없는 경우, nm 명령은 그 사실을 보고하지만, 이것을 오류 상태로 해석하지는 않습니다. nm 명령은 디폴트에 따라 십진법의 숫자 값을 보고합니다.
nm 명령은 다음의 기호 정보를 표준 출력에 기록합니다.
라이브러리나 오브젝트 이름
nm 명령은 사용자가 -A 옵션을 지정한 경우에만 파일과 연관된 라이브러리나 오브젝트 이름을 기록합니다.
기호 이름
기호 유형
nm 명령은 다음 문자 중 하나로 파일의 기호 유형을 표시합니다.
A 전역 절대 기호.
a 국지 절대 기호.
B 전역 bss 기호.
b 국지 bss 기호.
D 전역 데이터 기호.
d 국지 데이터 기호.
f 소스 파일 이름 기호.
T 전역 텍스트 기호.
t 국지 텍스트 기호.
U 정의되지 않은 기호.
값
크기
nm 명령은 적용 가능한 경우, 기호와 연관된 크기를 기록합니다.
파일
-A 각 행에 있는 오브젝트의 전체 경로 이름이나 라이브러리 이름을 표시합니다.
-B Berkeley 소프트웨어 분배(BSD) 형식으로 출력을 표시합니다.
값 유형 이름
-C C++ 이름의 디맹글링(demangling)을 생략합니다. 디폴트는 모든 C++ 기호 이름을 디맹글(demangle)하는 것입니다.
주: Symbols from C++ 오브젝트 파일의 기호에는 그 기호가 사용되기 전에 요구된 이름이 있습니다.
-d 기호의 값과 크기를 십진수로 표시합니다. 이 값이 디폴트입니다.
-e 정적이고 외부적인 (전역) 기호만 표시합니다.
-f 일반적으로 생략되는 불필요한 .text, .data 및 .bss 기호를 포함하여 전체 출력을 표시합니다.
-g 외부(전역) 기호만 표시합니다.
-h 출력 헤더 데이터의 표시를 생략합니다.
-o 기호의 값 및 크기를 10진수보다는 8진수로 표시합니다.
-P 표준 이동형 출력 형식으로 표시합니다.
라이브러리/오브젝트 이름 이름 유형 값 크기
이 형식은 사용자가 -t, -d 또는 -o 플래그를 사용하여 다른 형식을 지정하지 않은 경우, 16진법의 숫자 값을 표시합니다.
-P 플래그는 사용자가 -A 플래그를 지정한 경우에만 library/object name 필드를 표시합니다. 또한, -P 플래그는 크기가 적용 가능한 기호에 대해서만 size 필드를 표시합니다.
-p 분류하지 않습니다. 출력은 기호 테이블 순으로 인쇄됩니다.
-r 역순으로 분류합니다.
-T 이름에 표시된 마지막 문자를 별표로 만들어 절단하지 않으면, 열에서 넘칠 모든 이름을 절단합니다. 디폴트로, nm는 나열된 기호의 전체 이름을 표시하며, 이를 위해 제외해 둔 열의 폭보다 긴 이름은 이름 뒤의 모든 열이 잘못 정렬됩니다.
-t Format 지정된 형식으로 수 값을 표시하며 그 Type 매개변수는 다음 표기법 중 하나입니다.
d
십진법. 이것은 nm 명령에 대한 디폴트 형식입니다.
o
8진법.
x
16진법.
-u 정의되지 않은 기호만 표시합니다.
-v 알파벳 순서가 아니라 값에 따라 출력을 분류합니다.
-x 기호 값 및 크기를 10진수가 아닌 16진수로 표시합니다.
-X mode nm가 검사해야 하는 오브젝트 파일의 유형을 지정합니다. mode는 다음 중 하나여야 합니다.
32
32 비트 오브젝트 파일만 처리합니다.
64
64 비트 오브젝트 파일만 처리합니다.
32_64
32 비트와 64 비트 오브젝트 파일 모두 처리합니다.
디폴트는 32 비트 오브젝트 파일 처리입니다(64 비트 오브젝트 무시). mode 또한 OBJECT_MODE 환경 변수를 사용하여 설정할 수 있습니다. 예를 들면, OBJECT_MODE=64은 nm이 64 비트 오브젝트는 처리하고, 32 비트 오브젝트는 무시하도록 합니다. -X 플래그는 OBJECT_MODE 변수를 겹쳐씁니다.
주: nm 명령은 --(이중 하이픈) 플래그를 지원합니다. 이 플래그는 파일 이름이 옵션으로 잘못 해석될 경우, File 피연산자를 구별합니다. 예를 들면 하이픈으로 시작하는 파일 이름을 지정하려면 다음과 같이 -- 플래그를 사용하십시오.
종료 상태
이 명령은 다음의 값을 리턴합니다.
0 성공적으로 완료되었습니다.
>0 오류가 발생했습니다.
예제
오브젝트 파일 a.out의 정적 및 외부 기호를 나열하려면 다음과 같이 입력하십시오.
nm -e a.out
기호 크기 및 값을 16진수로 표시하고 값에 따라 기호를 분류하려면 다음과 같이 입력하십시오.
nm -xv a.out
모든 32 비트 오브젝트는 무시하고 libc.a에 있는 모든 64 비트 오브젝트의 기호를 나열하려면 다음과 같이 입력하십시오.
nm -X64 /usr/lib/libc.a
파일
/usr/ccs/bin/nm nm 명령을 포함하고 있습니다.
관련 정보
ar 명령, as명령, ld 명령, size 명령, strip 명령.
a.out 파일, ar 파일.
AIX 5L 버전 5.1 시스템 사용자 안내서: 운영 시스템 및 장치의 명령 개요.
Itanium 기반 플랫폼의 nm 명령
목적
오브젝트 파일의 이름 리스트를 인쇄합니다.
구문
nm [ -goxhtnvsnurplCVAPR ] files
설명
nm 명령은 file(s)에 지정된 각 ELF 오브젝트 파일의 기호 테이블을 표시합니다. 파일은 재배치 가능 또는 절대 ELF 오브젝트 파일입니다. 그렇지 않으면 재배치 가능 또는 절대 ELF 오브젝트 파일의 아카이브입니다. 각각의 기호에 대해 다음과 같은 정보가 인쇄됩니다.
Index
기호 색인입니다(색인은 대괄호로 묶여서 나타납니다).
Value
기호 값은 재배치 가능 파일에 정의된 기호의 섹션 오프셋, 섹션 색인이 "SHN_COMMON"인 기호의 정렬 제한조건, 실행가능 및 동적 라이브러리 파일의 가상 주소 중 하나입니다.
Size
연관된 오브젝트의 크기(바이트)입니다.
Type
"NOTYPE"(지정된 유형 없음), "OBJECT"(배열 또는 변수 등의 데이터 오브젝트), "FUNC"(함수 또는 기타 실행가능 코드), "SECTION"(섹션 기호) 또는 "FILE"(소스 파일의 이름) 중 하나의 유형을 나타내는 기호입니다.
Bind
기호의 바인딩 속성입니다. "LOCAL" 기호의 유효범위는 해당 정의를 포함하는 오브젝트 파일까지로 제한됩니다. "GLOBAL" 기호는 결합되는 모든 오브젝트 파일에서 볼 수 있습니다. "WEAK" 기호는 "GLOBAL"보다 선행이 낮은 전역 기호입니다.
Other
이 필드는 현재 기호의 가시성을 나타냅니다. 0은 디폴트 가시성을 나타냅니다. "HIDDEN"은 기호가 해당 오브젝트 내에서만 보일 뿐, 다른 오브젝트에 반출되지 않음을 나타냅니다. "PROT"는 기호가 "보호"되고 있음을 나타냅니다. 이 정의보다 선행이 높은 다른 정의가 있더라도, 오브젝트 내의 기호에 대한 참조는 이 정의로 이동합니다.
Shndx
세 가지 특수 값을 제외하고, 기호가 정의된 것과 관련된 섹션 헤더 테이블 색인입니다. 특수 값으로는 기호 값이 재배치를 통해 변경되지 않음을 나타내는 "ABS", 할당되지 않은 블록과 값이 정렬 제한조건을 제공함을 나타내는 "COMMON", 기호가 정의되지 않았음을 나타내는 "UNDEF"가 있습니다.
Name
기호 이름입니다.
nm 출력은 다음과 같은 옵션을 사용하여 제어할 수 있습니다.
-g
바인딩 유형이 GLOBAL 및 WEAK인 기호만 인쇄합니다.
-o
십진수가 아닌 8진수 형식으로 기호의 값과 크기를 인쇄합니다.
-x
십진수가 아닌 16진수 형식으로 기호의 값과 크기를 인쇄합니다.
-t d | o | x
출력 형식을 십진수, 8진수 또는 16진수로 설정합니다. 디폴트는 십진수입니다. -t o는 -o와 같습니다. -t x는 -x와 같습니다.
-h
출력 표제 데이터를 표시하지 않습니다.
-v
인쇄하기 전에 값별로 외부 기호를 분류합니다.
-s
섹션 색인 대신에 섹션 이름을 인쇄합니다.
-n
인쇄하기 전에 이름별로 외부 기호를 분류합니다.
-u
정의되지 않은 기호만 인쇄합니다.
-r
오브젝트 파일이나 아카이브의 이름을 각 기호 이름의 앞에 붙입니다. 이 옵션은 -P가 지정된 경우 무시됩니다.
-p [-l]
쉽게 해석할 수 있는 간결한 출력을 만듭니다. 각 기호 이름의 앞에는 값(정의되지 않은 경우 공백)과 하나의 문자가 붙습니다. 이러한 문자로는 "U"(정의되지 않은 기호 참조), "A"(절대 기호), "B"(.bss에 정의된 기호 또는 공통 기호), "N"(유형이 없는 기호), "D"(데이터 오브젝트 기호), "T"(텍스트 기호), "S"(섹션 기호) 또는 "F"(파일 기호)가 있습니다. 기호의 바인딩 속성이 "LOCAL"인 경우, 키 문자는 소문자입니다. 기호의 바인딩 속성이 "WEAK"인 경우, 키 문자는 대문자입니다(-l 수정자가 지정된 경우에는 대문자 키 뒤에 "*"가 붙습니다). 기호의 바인딩 속성이 "GLOBAL"인 경우, 키 문자는 대문자입니다.
-C
해독된 C++ 이름을 인쇄합니다.
-V
실행 중인 nm 명령의 버전 번호를 표준 오류 출력으로 인쇄합니다.
-A
오브젝트 파일과 아카이브의 이름을 각 출력 행의 앞에 붙입니다.
-P [-l]
간결하고 쉽게 해석할 수 있는 대체 출력 양식(-p 참조)입니다. 기호 이름, 키 문자(-p에서 설명됨), 기호 값 및 기호 크기가 차례로 표시됩니다. 값 및 크기 필드는 디폴트로 16진수로 인쇄됩니다.
-R
오브젝트 파일과 아카이브의 이름을 각 기호 이름의 앞에 붙입니다. 이 옵션은 -P가 지정된 경우 무시됩니다.
하나의 옵션이나 여러 옵션을 일정한 순서로 조합하여 명령행 어디서든지 사용할 수 있습니다. 지정된 옵션이 서로 상충되는 경우(예: nm -v -n), 첫 번째 옵션이 사용되고 두 번째 옵션은 사용자에게 경고 메세지가 표시되면서 무시됩니다.
관련 정보
a.out 파일 형식, ar 파일 형식
ar 명령, as 명령, cc 명령, dump 명령, ld 명령