Nm - Linux 명령 - Unix 명령

nm - 객체 파일의 심볼 나열

개요

nm [ -a | --debug-syms ] [ -g | --extern-only ]
[ -B ] [ -C | --demangle [= 스타일 ]] [ -D | - 동적 ]
[ -S | --print-size ] [ -s | --print-armap ]
[ -A | -o | --print-file-name ]
[ -n | -v | - 숫자 정렬 ] [ -p | - 아니 - 정렬 ]
[ -r | --reverse-sort ] [ --size-sort ] [ -u | - 설립 - 전용 ]
[ -t radix | --radix = radix ] [ -P | - 휴대 성 ]
[ - 대상 = bfdname ] [ -f 형식 | - 포맷 = 형식 ]
[ --defined-only ] [ -l | - 라인 번호 ] [ --no-demangle ]
[ -V | --version ] [ -X 32_64 ] [ --help ] [ objfile ...]

기술

GNU nm 은 오브젝트 파일 objfile 의 심볼을 나열합니다. 인수로 나열된 오브젝트 파일이 없으면 nm 은 파일 a.out을 사용 합니다.

각 기호에 대해 nm 은 다음을 표시합니다.

*

옵션에 의해 선택된 기수 (아래 참조)의 기호 값, 또는 기본적으로 16 진수입니다.

*

기호 유형입니다. 적어도 다음 유형이 사용됩니다. 객체 파일 형식에 따라 다른 것도 있습니다. 소문자 인 경우 심볼은 로컬입니다. 대문자 인 경우 기호는 전역 (외부)입니다.

에이

기호의 값은 절대 값이며 더 이상 연결하여 변경되지 않습니다.

심볼은 초기화되지 않은 데이터 섹션 (BSS라고 함)에 있습니다.

기음

상징은 일반적입니다. 일반적인 기호는 초기화되지 않은 데이터입니다. 링크 할 때 여러 개의 공통 기호가 같은 이름으로 나타날 수 있습니다. 기호가 어디서든 정의되면 일반 기호는 정의되지 않은 참조로 처리됩니다.

기호는 초기화 된 데이터 섹션에 있습니다.

심볼은 작은 오브젝트의 초기화 된 데이터 섹션에 있습니다. 일부 객체 파일 형식을 사용하면 대규모 전역 배열이 아닌 전역 int 변수와 같은 작은 데이터 객체에보다 효율적으로 액세스 할 수 있습니다.

나는

기호는 다른 기호에 대한 간접 참조입니다. 이것은 거의 사용되지 않는 a.out 오브젝트 파일 형식에 대한 GNU 확장입니다.

기호는 디버깅 기호입니다.

아르 자형

심볼은 읽기 전용 데이터 섹션에 있습니다.

에스

심볼은 작은 오브젝트에 대해 초기화되지 않은 데이터 섹션에 있습니다.

기호는 텍스트 (코드) 섹션에 있습니다.

기호는 정의되지 않습니다.

V

기호는 약한 개체입니다. 약한 정의 기호가 일반 정의 기호와 링크되면 일반 정의 기호가 오류없이 사용됩니다. 정의되지 않은 약한 기호가 링크되고 기호가 정의되지 않은 경우 약한 기호의 값은 오류없이 0이됩니다.

기호는 약한 개체 기호로 특별히 태그가 지정되지 않은 약한 기호입니다. 약한 정의 기호가 일반 정의 기호와 링크되면 일반 정의 기호가 오류없이 사용됩니다. 정의되지 않은 약한 기호가 링크되고 기호가 정의되지 않은 경우 약한 기호의 값은 오류없이 0이됩니다.

-

심볼은 a.out 오브젝트 파일의 stab 심볼입니다. 이 경우 인쇄 된 다음 값은 stabs 다른 필드, stabs desc 필드 및 stab 유형입니다. Stabs 기호는 디버깅 정보를 저장하는 데 사용됩니다.

?

심볼 유형은 알 수 없거나 특정 오브젝트 파일 형식입니다.

*

심볼 이름.

옵션

대안으로 여기에 표시되는 길고 짧은 형태의 옵션이 동일합니다.

-에이

-영형

--print-file-name

모든 기호 앞에 입력 파일을 한 번만 식별하는 대신 각 기호를 찾은 입력 파일 (또는 아카이브 구성원)의 이름으로 시작하십시오.

-에이

--debug-syms

디버거 전용 심볼도 포함하여 모든 심볼을 표시하십시오. 일반적으로 이들은 나열되지 않습니다.

-비

--format = bsd 와 동일합니다 (MIPS nm 과의 호환성을 위해).

-기음

--demangle [= 스타일 ]

하위 레벨 심볼 이름을 사용자 레벨 이름으로 디코딩 ( demangle )합니다. 시스템 앞에 붙은 초기 밑줄을 제거하는 것 외에도 C ++ 함수 이름을 읽을 수 있습니다. 다른 컴파일러는 서로 다른 mangling 스타일을 가지고 있습니다. 선택적 demangling 스타일 인수는 컴파일러에 적합한 디맹 글링 스타일을 선택하는 데 사용할 수 있습니다.

- 노 demangle

저수준 기호 이름을 다듬지 마십시오. 이것이 기본값입니다.

-디

--동적

일반 기호가 아닌 동적 기호를 표시하십시오. 이는 특정 유형의 공유 라이브러리와 같은 동적 객체에서만 의미가 있습니다.

-f 형식

- 형식 = 형식

"bsd", "sysv"또는 "posix"일 수있는 출력 형식 형식을 사용하십시오. 기본값은 "bsd"입니다. 형식 의 첫 번째 문자 만 중요합니다. 그것은 대문자이거나 소문자 일 수 있습니다.

-지

--extern-only

외부 기호 만 표시하십시오.

-엘

행 번호

각 기호에 대해 디버깅 정보를 사용하여 파일 이름과 줄 번호를 찾으십시오. 정의 된 심볼의 경우 심볼 주소의 행 번호를 찾습니다. 정의되지 않은 심볼의 경우 심볼을 참조하는 재배치 엔트리의 라인 번호를 찾습니다. 줄 번호 정보를 찾을 수 있으면 다른 기호 정보 뒤에 인쇄하십시오.

-엔

-V

- 숫자 정렬

기호를 이름순으로 알파벳순으로 정렬하지 않고 주소순으로 정렬합니다.

-피

- 아니 - 정렬

순서를 불문하고 기호를 정렬하지 마십시오. 발생한 순서대로 인쇄하십시오.

-피

- 휴대 성

기본 형식 대신 POSIX.2 표준 출력 형식을 사용하십시오. -f posix 와 같습니다.

-에스

--print-size

"bsd"출력 형식에 대해 정의 된 기호의 인쇄 크기.

-에스

--print-armap

아카이브 멤버의 심볼을 나열 할 때 인덱스를 포함합니다 : 어떤 모듈에 어떤 이름의 정의가 포함되어 있는지 ( ar 또는 ranlib에 의해 아카이브에 저장 됨) 매핑.

-아르 자형

--reverse-sort

정렬 순서를 역순으로 변경하십시오 (숫자 또는 알파벳 여부). 마지막으로 먼저 오게하십시오.

--size-sort

크기별로 기호를 정렬하십시오. 크기는 기호의 값과 다음으로 큰 값을 갖는 기호의 값 사이의 차이로 계산됩니다. 값이 아닌 기호의 크기가 인쇄됩니다.

~ 기수

--radix = 기수

기호 값 인쇄 기수는 radix를 사용하십시오. 십진수는 d , 십진수는 o 또는 16 진수는 x 여야합니다.

--target = bfdname

시스템의 기본 형식이 아닌 오브젝트 코드 형식을 지정하십시오.

-유

- 전용 - 전용

정의되지 않은 기호 (각 오브젝트 파일의 외부 기호) 만 표시하십시오.

정의 된 전용

각 오브젝트 파일에 대해 정의 된 기호 만 표시하십시오.

-V

--번역

nm 의 버전 번호를 표시하고 종료하십시오.

-엑스

이 옵션은 AIX 버전의 nm 과의 호환성을 위해 무시됩니다. 문자열 32_64 여야하는 하나의 매개 변수를 취합니다. AIX nm 의 기본 모드는 GNU nm에서 지원하지 않는 -X 32에 해당합니다.

--도움

nm 에 대한 옵션 요약을 보여주고 종료하십시오.

관련 항목

binutils에 대한 ar (1), objdump (1), ranlib (1) 및 Info 항목이 있습니다.

중요 : man 명령 ( % man )을 사용하여 특정 컴퓨터에서 명령이 어떻게 사용되는지보십시오.