Mac OS X的readelf类工具?
是否有一个读取Mac OS X二进制文件的工具,可以打印与此Mac OS X的readelf类工具?,c,macos,function,symbols,C,Macos,Function,Symbols,是否有一个读取Mac OS X二进制文件的工具,可以打印与此readelf输出类似的重定位表和符号偏移的信息 readelf -r app Relocation section '.rel.dyn' at offset 0x5ec contains 2 entries: Offset Info Type Sym.Value Sym. Name 08049d58 00001706 R_386_GLOB_DAT 00000000 __gmon_s
readelf
输出类似的重定位表和符号偏移的信息
readelf -r app
Relocation section '.rel.dyn' at offset 0x5ec contains 2 entries:
Offset Info Type Sym.Value Sym. Name
08049d58 00001706 R_386_GLOB_DAT 00000000 __gmon_start__
08049d60 00000305 R_386_COPY 08049d60 _ZSt4cout
Relocation section '.rel.plt' at offset 0x5fc contains 13 entries:
Offset Info Type Sym.Value Sym. Name
08049d24 00000107 R_386_JUMP_SLOT 0804868c print
08049d28 00000207 R_386_JUMP_SLOT 0804869c _ZNSt8ios_base4InitC1E
08049d2c 00000507 R_386_JUMP_SLOT 080486ac _ZStlsISt11char_traits
08049d30 00000607 R_386_JUMP_SLOT 080486bc _ZNSolsEPFRSoS_E
08049d34 00000707 R_386_JUMP_SLOT 08048664 _init
08049d38 00000807 R_386_JUMP_SLOT 080486dc sleep
08049d3c 00000907 R_386_JUMP_SLOT 080486ec _ZNKSsixEj
08049d40 00000b07 R_386_JUMP_SLOT 080486fc _ZNKSs4sizeEv
08049d44 00000c07 R_386_JUMP_SLOT 0804870c __libc_start_main
08049d48 00000d07 R_386_JUMP_SLOT 08048ae4 _fini
08049d4c 00001307 R_386_JUMP_SLOT 0804872c _ZSt4endlIcSt11char_tr
08049d50 00001507 R_386_JUMP_SLOT 0804873c __gxx_personality_v0
08049d54 00001607 R_386_JUMP_SLOT 0804874c _ZNSt8ios_base4InitD1E
在本例中,
print
是一个在运行时从共享库(我编写)加载的函数readelf
能够显示其在app
二进制文件中的位置信息。otool-l test.o使用:
端口安装binutils
gobjdump-p/path/to/app
brew更新和&brew安装binutils
/usr/local/path/to/gobjdump-p/path/to/app
#或按照说明将其添加到路径中ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install binutils
greadelf filepath
greadelf
nm
会做这个把戏吗?它不会打印足够的信息。不,它也不会做这个把戏。你可以用otool做这个,你只需要通过额外的选项。有关详细信息,请参阅手册。otool-Sv libtest.a
更好,或otool-STMRIHGv
适用于任何类型的库(*.a
,*.so
,*.dylib
)<代码>otool在安装Xcode后可在/Applications/Xcode.app/Contents/Developer/toolschains/xcodefault.xctoolchain/usr/bin/otool
上找到。不幸的是,我需要使用。所以
文件来完成这项工作。很高兴认识您,carlfilips,谢谢。我也很高兴认识您。另外,请看一下这个+1工具,感谢您为那些处理Drawer debug info+1的人提供的一个非常好的工具,它可以在Apple工具链中找到。安装Xcode后,可以在/Applications/Xcode.app/Contents/Developer/toolschains/xcodefault.xctoolschain/usr/bin/dwarfdump
上找到它。虽然通常不需要完整路径,但您可以使用xcrun dwarfdump
。您可以使用/usr/bin/dwarfdump
作为快捷方式,这意味着您只需键入dwarfdump
即可正常工作。如果您使用自制,则可以通过“brew安装binutils”安装。对于自制用户,如@louielouie所述,brew安装binutils
然后所有工具都将以g
作为前缀,即greadelf
。看到了,我收到一条消息:gobjdump:Matching formats:elf32 littleram elf32 littleram symbian elf32 littleram vxworks
@IgorGanapolsky您可以使用greadelf-Ws/path/to/your/so/filesgradelf需要一个flagUsegreadelf-a
,-a
标志代表所有转储一切的选项