objdump 의 여러 기능이 있지만 다음과 같은 기능이 있습니다.
바로 실행 파일에서 sam code 를 바로 확인해 볼 수 있는거지요.
옵션을 보면 source 와 매칭을 시킬 수도 있을것 같은데 좀 더 익숙해 지면 업데이트 하겠습니다.
>objdump -d a.out | grep -A10 '<s3c_gpiolib_add>'
08052cbc <s3c_gpiolib_add>:
8052cbc: 0d c0 a0 e1 30 or $0x30e1a0c0,%eax
8052cc1: d8 2d e9 04 b0 4c fsubrs 0x4cb004e9
8052cc7: e2 38 loop 8052d01 <s3c_gpiolib_add+0x45>
8052cc9: 30 90 e5 00 40 a0 xor %dl,0xa04000e5(%eax)
8052ccf: e1 00 loope 8052cd1 <s3c_gpiolib_add+0x15>
8052cd1: 00 53 e3 add %dl,0xffffffe3(%ebx)
8052cd4: c4 00 les (%eax),%eax
8052cd6: 9f lahf
8052cd7: 05 82 10 a0 03 add $0x3a01082,%eax
8052cdc: 04 00 add $0x0,%al
만약 arm library 를 분석하신다면 arm compiler 에 포함되어 있는
arm-linux-objdump
를 사용하시면 됩니다.
예로 start address 와 end address 를 지정하여 분석도 가능합니다.
> arm-linux-objdump -d libexpat.so.1.5.0 --start-address=0x5830 --stop-address=0x5900
libexpat.so.1.5.0: file format elf32-littlearm
Disassembly of section .init:
Disassembly of section .plt:
Disassembly of section .text:
00005830 <parserCreate+0x7c>:
5830: e1a05000 mov r5, r0
5834: e5840188 str r0, [r4, #392]
5838: 0a00007f beq 5a3c <parserCreate+0x288>
...
objdump 사용법이 잘 나와 있는 사이트
http://www.thegeekstuff.com/2012/09/objdump-examples/
'Programming > Linux_Kernel' 카테고리의 다른 글
symbol table 로 code area 에서 함수 위치 찾기 (0) | 2010.04.22 |
---|---|
readelf - 섹션 위치 한눈에 보기 (0) | 2010.04.21 |
linux mailing list 정리 (0) | 2010.04.19 |
linux - Heap 은 움직인다(늘어난다). (0) | 2010.04.15 |
특정 시간 동안 system cpu 사용량 구하기 (linux) (0) | 2010.04.07 |