달력

122024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

nm - lib 안의 함수목록

OS 2008. 8. 8. 14:34

c 라이브러리안의 함수목록을 보는 명령어로 nm 이 있다.
$nm -X비트수 파일명
요 방법으로 라이브러리가 해당 비트에 맞는지도 얼추 확인해볼 수 있다.


nm [ -a | --debug-syms ]  [ -g | --extern-only ]
   [ -B ]  [ -C | --demangle[=style] ] [ -D | --dynamic ]
   [ -s | --print-armap ]  [ -A | -o | --print-file-name ]
   [ -n | -v | --numeric-sort ]  [ -p | --no-sort ]
   [ -r | --reverse-sort ]  [ --size-sort ] [ -u | --undefined-only ]
   [ -t radix | --radix=radix ] [ -P | --portability ]
   [ --target=bfdname ] [ -f format | --format=format ]
   [ --defined-only ] [-l | --line-numbers ]  [ --no-demangle ]
   [ -V | --version ]  [ -X 32_64 ]  [ --help ]  [ objfile... ]

GNU nm lists the symbols from object files objfile.... If no object files are listed as arguments, nm assumes the file `a.out'.

For each symbol, nm shows:

GNU nm은 오브젝트 파일 objfile...의 심볼을 출력한다. 아규먼트로 어떤 오브젝트 파일도 사용하지 않으면 `a.out'을 가정한다.

  • The symbol value, in the radix selected by options (see below), or hexadecimal by default.
    심볼 값은 아래 설명할 옵션에서 지정한 진수로 출력한다. 기본값은 16 진수이다.
  • The symbol type. At least the following types are used; others are, as well, depending on the object file format. If lowercase, the symbol is local; if uppercase, the symbol is global (external).
    심볼 타입. 최소한 다음 타입들이 사용된다. 나머지는 오브젝트 파일 형식에 따라 다르다. 소문자는 심볼이 지역 심볼임을, 대문자는 심볼이 전역 (외부) 심볼임을 나타낸다.
    A
    The symbol's value is absolute, and will not be changed by further linking.
    심볼 값이 절대적이여서, 더 링크를 해도 변경되지 않는다.
    B
    The symbol is in the uninitialized data section (known as BSS).
    심볼이 (BSS라 부르는) 초기화되지않은 자료 섹션에 저장된다.
    C
    The symbol is common. Common symbols are uninitialized data. When linking, multiple common symbols may appear with the same name. If the symbol is defined anywhere, the common symbols are treated as undefined references. For more details on common symbols, see the discussion of --warn-common in section `Linker options' in The GNU linker.
    심볼이 공통 심볼이다. 공통 심볼은 초기화되지않은 자료이다. 링크시 같은 이름을 가진 여러 공통 심볼이 가능하다. 심볼이 어디에도 정의되지 않았다면 공통 심볼은 정의되지 않은 참조로 취급된다. 공통 심볼에 자세히 알려면, The GNU linker의 `Linker options'에서 --warn-common 옵션 설명을 참고하라.
    D
    The symbol is in the initialized data section.
    심볼이 초기화된 자료 섹션에 위치한다.
    G
    The symbol is in an initialized data section for small objects. Some object file formats permit more efficient access to small data objects, such as a global int variable as opposed to a large global array.
    심볼이 크기가 작은 객체를 위한 초기화된 자료 섹션에 위치한다. 몇몇 오브젝트 파일 형식은 (큰 전역 배열에 대응되는 전역 정수 변수와 같이) 작은 자료 객체를 더 효율적으로 접근할 수 있다.
    I
    The symbol is an indirect reference to another symbol. This is a GNU extension to the a.out object file format which is rarely used.
    심볼은 다른 심볼로의 간접 참조이다. 이는 거의 사용되지 않는 a.out 오브젝트 파일 형식에서 대한 GNU 확장이다.
    N
    The symbol is a debugging symbol.
    심볼이 디버그 심볼이다.
    R
    The symbol is in a read only data section.
    심볼이 읽기 전용 섹션에 있다.
    S
    The symbol is in an uninitialized data section for small objects.
    심볼이 작은 객체를 위한 초기화되지않은 자료 섹션에 있다.
    T
    The symbol is in the text (code) section.
    심볼이 텍스트 (text, 코드) 섹션에 있다.
    U
    The symbol is undefined.
    심볼이 정의되지 않았다.
    V
    The symbol is a weak object. When a weak defined symbol is linked with a normal defined symbol, the normal defined symbol is used with no error. When a weak undefined symbol is linked and the symbol is not defined, the value of the weak symbol becomes zero with no error.
    심볼은 약한 객체이다. 약한 객체가 정의된 심볼과 링크되면 오류없이 정의된 심볼이 사용된다. 정의되지않은 약한 심볼이 링크될 때 정의된 심볼이 없다면 오류없이 약한 심볼 값은 0이 된다.
    W
    The symbol is a weak symbol that has not been specifically tagged as a weak object symbol. When a weak defined symbol is linked with a normal defined symbol, the normal defined symbol is used with no error. When a weak undefined symbol is linked and the symbol is not defined, the value of the weak symbol becomes zero with no error.
    심볼은 명시적으로 약한 객체 심볼이라고 표시되지 않은 약한 심볼이다. 약한 객체가 정의된 심볼과 링크되면 오류없이 정의된 심볼이 사용된다. 정의되지않은 약한 심볼이 링크될 때 정의된 심볼이 없다면 오류없이 약한 심볼 값은 0이 된다.
    -
    The symbol is a stabs symbol in an a.out object file. In this case, the next values printed are the stabs other field, the stabs desc field, and the stab type. Stabs symbols are used to hold debugging information; for more information, see section `Stabs Overview' in The "stabs" debug format.
    심볼은 a.out 오브젝트 파일에서 stabs 심볼이다. 이 경우 다음으로 출력되는 값은 stabs other 필드, stabs desc 필드, stab 타입이다. stabs 심볼은 디버깅 정보를 저장한다. The "stabs" debug format의 `Stabs Overview'을 참고하라. (역주; 이 문서는 GNU GDB 소스코드에 포함되있다.)
    ?
    The symbol type is unknown, or object file format specific.
    알 수 없거나 오브젝트 파일 형식에 의존하는 심볼 타입.
  • The symbol name.
    심볼 이름.

The long and short forms of options, shown here as alternatives, are equivalent.
같이 설명하는 긴 형식과 작은 형식의 옵션은 동일하다.

-A
-o
--print-file-name
Precede each symbol by the name of the input file (or archive member) in which it was found, rather than identifying the input file once only, before all of its symbols.
심볼들 앞에 한번만 입력파일을 출력하지 않고, 각 심볼 앞마다 심볼이 발견된 입력파일 이름을 (혹은 아카이브 멤버를) 출력한다.
-a
--debug-syms
Display all symbols, even debugger-only symbols; normally these are not listed.
보통 출력하지 않는 디버거용 심볼을 포함하여 모든 심볼을 출력한다.
-B
The same as `--format=bsd' (for compatibility with the MIPS nm).
(MIPS nm과 호환을 위해) `--format=bsd'와 동일하다.
-C
--demangle[=style]
Decode (demangle) low-level symbol names into user-level names. Besides removing any initial underscore prepended by the system, this makes C++ function names readable. Different compilers have different mangling styles. The optional demangling style argument can be used to choose an appropriate demangling style for your compiler. See section c++filt, for more information on demangling.
저수준 심볼 이름을 사람이 알아볼 수 있게 풀어쓴다(디맹글링). 시스템에서 앞에 붙인 `_'을 제거하는 것 외에 C++ 함수 이름도 풀어쓴다. 컴파일러 마다 다른 맹글링 형식을 사용한다. 선택적인 디맹글링 형식 아규먼트는 컴파일러에 해당하는 디맹글링 형식을 선택한다. 디맹글링에 대해서는 c++filt을 참고하라.
--no-demangle
Do not demangle low-level symbol names. This is the default.
저수준 심볼 이름을 디맹글링하지 않는다. 이것이 기본 행동이다.
-D
--dynamic
Display the dynamic symbols rather than the normal symbols. This is only meaningful for dynamic objects, such as certain types of shared libraries.
보통 심볼이 아니라 동적 심볼을 출력한다. 이는 공유 라이브러리와 같은 동적 객체에만 의미가 있다.
-f format
--format=format
Use the output format format, which can be bsd, sysv, or posix. The default is bsd. Only the first character of format is significant; it can be either upper or lower case.
출력 형식으로 format을 사용한다. 출력 형식에는 bsd, sysv, posix을 사용할 수 있다. 기본값은 bsd이다. 형식은 format의 첫 문자만 보고 결정한다. 대소문자 모두 가능하다.
-g
--extern-only
Display only external symbols.
외부 심볼만 출력한다.
-l
--line-numbers
For each symbol, use debugging information to try to find a filename and line number. For a defined symbol, look for the line number of the address of the symbol. For an undefined symbol, look for the line number of a relocation entry which refers to the symbol. If line number information can be found, print it after the other symbol information.
각 심볼에 대응하는 파일명과 줄 번호를 찾기 위해서 디버깅 정보를 이용한다. 정의된 심볼은 심볼 주소에 대응하는 줄 번호를 찾는다. 정의되지 않은 심볼은 심볼을 참조하는 재배치 항목의 줄 번호를 찾는다. 줄 번호 정보가 발견되면 다른 심볼 정보 뒤에 출력한다.
-n
-v
--numeric-sort
Sort symbols numerically by their addresses, rather than alphabetically by their names.
심볼의 이름이 아니라 주소로 심볼을 정렬한다.
-p
--no-sort
Do not bother to sort the symbols in any order; print them in the order encountered.
심볼을 정렬하지 않는다. 발견되는 순서대로 출력한다.
-P
--portability
Use the POSIX.2 standard output format instead of the default format. Equivalent to `-f posix'.
기본 출력 형식 대신에 POSIX.2 표준 형식을 사용한다. `-f posix'와 같다.
-s
--print-armap
When listing symbols from archive members, include the index: a mapping (stored in the archive by ar or ranlib) of which modules contain definitions for which names.
아카이브 멤버에서 심볼을 출력할 때, 어떤 모듈이 어떤 이름의 정의를 포함하는지 (arranlib로 아카이브에 저장한) 대응도 출력한다.
-r
--reverse-sort
Reverse the order of the sort (whether numeric or alphabetic); let the last come first.
(숫자순이나 문자순이나) 정렬 순서를 반대로 한다. 뒤의 것이 앞에 오게 한다.
--size-sort
Sort symbols by size. The size is computed as the difference between the value of the symbol and the value of the symbol with the next higher value. The size of the symbol is printed, rather than the value.
크기로 심볼을 정렬한다. 크기는 심볼 값과 다음으로 값이 큰 심볼 값의 차이로 계산된다. 심볼 값 대신 심볼의 크기가 출력된다.
-t radix
--radix=radix
Use radix as the radix for printing the symbol values. It must be `d' for decimal, `o' for octal, or `x' for hexadecimal.
심볼 값을 출력하는 진수로 radix을 사용한다. `d'는 10 진수, `o'는 8 진수, `x'는 16 진수를 나타낸다.
--target=bfdname
Specify an object code format other than your system's default format. See section Target Selection, for more information.
시스템 기본 오브젝트 형식 대신 다른 형식을 지정한다. Target Selection를 참고하라.
-u
--undefined-only
Display only undefined symbols (those external to each object file).
정의되지 않은 (외부) 심볼만 출력한다.
--defined-only
Display only defined symbols for each object file.
각 오브젝트 파일에서 정의된 심볼만 출력한다.
-V
--version
Show the version number of nm and exit.
nm 버전을 출력하고 종료한다.
-X
This option is ignored for compatibility with the AIX version of nm. It takes one parameter which must be the string 32_64. The default mode of AIX nm corresponds to -X 32, which is not supported by GNU nm.
이 옵션은 AIX의 nm와 호환을 위한 것으로 무시된다. 이 옵션은 한 파라미터를 받으며, 그 파라미터는 32_64이어야 한다. AIX nm의 기본값은 GNU nm이 지원하지 않는 -X 32이다.

'OS' 카테고리의 다른 글

route - DOS  (0) 2009.02.06
[AIX]하드웨어명령어  (0) 2008.09.15
HOW-TO Glance  (0) 2008.08.06
sed - 스트림 에디터  (0) 2008.07.16
ulimit 명령어  (0) 2008.07.14
Posted by marryjane
|