'gravity-free/objdump'에 해당되는 글 1건

  1. 2011.03.04 objdump -options

objdump -options

gravity-free/objdump 2011. 3. 4. 01:50

이름

objdump -오브젝트 파일의 정보를 표시한다.

 

사용법

objdump
[-a|--archive-headers] [-b bfdname | --target=bfdname] [-C|--demangle] [--debugging] [-d|--disassemble] [-D|--disassemble-all] [--disassemble-zeroes] [-EB|-EL|--endian={big|little}] [-f|--file-headers] [-h|--section-headers | --headers] [-i|--info] [-j section | --section=section] [-l|--line-numbers] [-m machine | --architecture=machine] [--prefix-addresses] [-r|--reloc] [-R|--dynamic-reloc] [-s|--full-contents] [-S|--source] [--[no-]show-raw-insn] [--stabs] [-t|--syms] [-T|--dynamic-syms] [-x|--all-headers] [--start-address=address] [--stop-address=address] [--adjust-vma=offset] [--version] [--help] objfile...

 

설명

objdump 는 하나 이상의 오브젝트 파일에 대한 정보를 출력한다. 각 옵션들은 어떠한 정보들을 출력할지를 제어한다. 이 정보들은 주로 일반적인 프로그래머가 아닌 컴파일 툴을 개발하는 프로그래머들에게 유용한 것이다.

objfile... 은 조사할 오브젝트 파일들에 해당한다. 여기에 아카이브 파일을 지정한 경우에는 objdump 는 포함된 각각의 오브젝트 파일에 대한 정보를 출력한다.

 

옵션

동일한 역할을 수행하는 긴 형식과 짧은 형식의 옵션은 함께 표기하였다. -l (--line-numbers) 옵션을 제외하고 최소한 하나 이상의 옵션이 지정되어야 한다.

-a
--archive-headers
만약 objfile 중의 하나가 아카이브 파일인 경우, 아카이브 헤더 정보를
 ( `ls -l'과 비슷한 형태로) 출력한다. `ar tv' 명령을 통해 알 수 있는 정보를 제외하고, `objdump -a' 명령은 아카이브 멤버인 각각의 오브젝트 파일에 대한 형식을 보여준다.
--adjust-vma=offset
정보를 출력할 때, 먼저 모든 섹션 주소에 offset 을 더한다. 이것은 a.out 형식과 같이 섹션 주소를 표현하지 않는 형식에서 어떤 섹션을 특정 주소에 위치시키려는 경우와 같이, 섹션 주소가 심벌 테이블과 일치하지 않는 경우에 유용하게 사용될 수 있다.
-b bfdname
--target=bfdname
오브젝트 파일에 적용될 오브젝트 코드 형식을 bfdname으로 지정한다. 이 옵션은objdump 가 자동적으로 해당 형식을 인식할 수 있는 경우에는 필요치 않다. 예를 들어,


objdump -b oasys -m vax -h fu.o

명령은 Oasys 컴파일러를 통해 생성된 형식인 Vax 오브젝트 파일로 지정된 (`-m') `fu.o' 파일의 섹션 헤더에서 (`-h') 요약 정보를 출력한다. 적용할 수 있는 형식의 목록을 보려면 `-i' 옵션을 이용하도록 한다.

-C
--demangle
저수준의 심벌 이름을 사용자가 알아볼 수 있는 형태로 디코딩(demangle)한다. 시스템에서 부여한 앞부분의 언더스코어를 제거하는 일 이외에도, 이것은 C++ 함수의 이름을 읽을 수 있도록 변환해 준다.
--debugging
디버깅 정보를 출력한다. 이것은 파일 내에 저장된 디버깅 정보를 분석하여 C 언어와 비슷한 현태로 출력한다. 오직 몇가지 타입의 디버깅 정보 만이 구현되어 있다.
-d
--disassemble
objfile에서 기계어 부분에 해당하는 어셈블러 명령어를 출력한다. 이 옵션은 오직 명령어들을 저장하도록 되어있는 섹션들만을 디스어셈블링 한다.
-D
--disassemble-all
-d 옵션과 비슷하지만, 명령어가 저장되어 있는 섹션만이 아닌 모든 섹션의 내용을 디스어셈블한다.
--prefix-addresses
디스어셈블 시에, 각 라인의 완전한 주소값을 출력한다. 이것은 예전의 디스어셈블리 형식에 해당한다.
--disassemble-zeroes
일반적으로 디스어셈블된 출력은 제로 블럭(모든 데이터가 0인 블럭)을 건너뛴다. 이 옵션이 사용되면 이러한 제로 블럭들도 다른 데이터와 마찬가지로 디스어셈블한다.
-EB
-EL
--endian={big|little}
오브젝트 파일의 엔디안 형식을 지정한다. 이것은 오직 디스어셈블링 시에 적용된다. 이 옵션은 S-records와 같이 엔디안 정보를 갖고 있지 않는 형식의 파일을 디스어셈블할 때 유용하게 사용될 수 있다.
-f
--file-headers
objfile내의 각 파일들의 전체 헤더에서 요약 정보를 출력한다.
-h
--section-headers
--headers
오브젝트 파일의 섹션 헤더에서 요약 정보를 출력한다.
--help
objdump 에서 사용할 수 있는 옵션의 요약 정보를 출력하고 종료한다.
-i
--info
-b 혹은 -m옵션과 함께 사용할 수 있는 모든 아키텍처와 오브젝트 형식의 목록을 출력한다.
-j name
--section=name
name 섹션의 정보만을 출력한다.
-l
--line-numbers
(디버깅 정보를 사용하여) 오브젝트 코드를 출력할 때 해당 부분의 파일명과 라인 번호를 함께 출력한다. 이 옵션은 -d, -D, -r 옵션들과 함께 사용할 때에만 의미가 있다.
-m machine
--architecture=machine
오브젝트 파일을 디스어셈블할 때 사용할 아키텍처를 지정한다. 이 옵션은 S-records와 같이 아키텍처 정보를 포함하지 않은 오브젝트 파일을 디스어셈블할 때 유용하게 사용할 수 있다. 사용할 수 있는 아키텍처의 목록은 -i 옵션을 이용하여 알아볼 수 있다.
-r
--reloc
파일의 재배치 항목들을 출력한다. 이 옵션이 -d 옵션이나 -d 옵션과 함께 사용된 경우에는, 재배치 항목들은 디스어셈블 결과와 섞여서 출력된다.
-R
--dynamic-reloc
파일의 동적 재배치 항목들을 출력한다. 이 옵션은 오직 공유 라이브러리와 같은 동적 객체에 적용할 경우에만 의미를 가진다.
-s
--full-contents
요청한 섹션의 완전한 내용을 출력한다.
-S
--source
가능하다면 디스어셈블링된 결과와 함께 소스 코드를 출력한다. -d 옵션을 사용한 것과 비슷한 효과이다.
--show-raw-insn
디스어셈블할 때 명령어의 심벌과 함께 16진수 값을 출력한다. 이것은 --prefix-addresses 옵션이 사용되지 않은 경우의 기본값이다.
--no-show-raw-insn
디스어셈블할 때, 명령어의 16진수 값을 출력하지 않는다. 이것은 --prefix-addresses 옵션이 사용된 경우의 기본값이다.
--stabs
ELF 파일의 .stab, .stab.index, .stab.excl 섹션의 내용을 출력한다. 이것은 ELF 섹션 내에 .stab 디버깅 심벌 테이블 항목이 들어있는 (솔라리스 2.0과 같은) 시스템에서 유용하게 사용될 수 있다. 다른 대부분의 파일 형식들은 디버깅 심벌 테이블 항목들은 --syms output 옵션을 통해 볼 수 있는 링크 심볼들과 뒤섞여 있다.
--start-address=address
지정된 주소의 데이터에서부터 출력을 시작한다. 이 옵션은 -d, -r , -s 옵션의 출력에 영향을 미친다.
--stop-address=address
지정된 주소의 데이터에서 출력을 중지한다. 이 옵션은 -d, -r , -s 옵션의 출력에 영향을 미친다.
-t
--syms
심벌 테이블. 파일의 심벌 테이블 항목들을 출력한다. 이것은 `nm' 프로그램에서 제공하는 정보와 비슷한 형태로 출력된다.
-T
--dynamic-syms
다이나믹 심벌 테이블. 파일의 동적 심벌 테이블 항목들을 출력한다. 이 옵션은 공유 라이브러리와 같은 동적 객체에 대해서만 의미를 가진다. 이것은 `nm' 프로그램에서 -D (--dynamic) 옵션을 사용하였을 때 제공하는 정보와 비슷한 형태로 출력된다.
--version
objdump 의 버전을 출력하고 종료한다.
-x
--all-headers
심벌 테이블과 재배치 항목들을 포함한 가능한 모든 헤더 정보를 출력한다. `-x' 옵션을 사용하는 것은 `-a -f -h -r -t' 옵션을 모두 함께 준 것과 동일하다.

: