我在 IBM AIX 5.1 机器中找不到
objdump
命令。实际上我想从 AIX 中生成的库中获取汇编指令(反汇编)。 Linux 有 objdump
命令和Solaris dis
命令可以执行此操作。 IBM AIX 中的等效命令是什么?
我只有部分答案。 跟踪@CoreyStup,我在 /opt/IBM/xlc/16.1.0/exe/dis (不是 bin 目录)中找到了 dis 命令。 但它非常顽固,似乎不愿意打印到标准输出或标准错误。 我确实发现它正在将输出写入通过用 .s 替换命令行上的 .o 创建的文件名。 所以:
% /opt/IBM/xlc/16.1.0/exe/dis aix/ktraceback.o
% ls -l aix/ktraceback.s
-rw-r--r-- 1 ota staff 10432 Nov 19 14:01 aix/ktraceback.s
% /opt/IBM/xlc/16.1.0/exe/dis -o /tmp/foo.s aix/ktraceback.o
% ls /tmp/foo.s
-rw-r--r-- 1 ota staff 10432 Nov 19 14:06 /tmp/foo.s
使用字符串 -a -n2,我能够提取可能的使用消息,但不清楚大多数选项的作用,除了 -o 之外。
dis disassembler version 1.27.0.1 Nov 9 2018 08:18:36
%s [-D] [-G] [-g] [-h] [-i] [-k] [-L] [-l] [-M] [-m <architecture>]
[-o <file name>] [-p <level>] [-r] [-R] [-S] [-T] [-t] [ filename ]
-D
disassemble .data and .bss only
-G
do not print symbolic debugging information
-g
print symbolic debugging information (default)
-H
print BO branch hints
-h
print headers
-i
line input mode
-k
do not interpret traceback table
-L
print linker section
-l
print line number table
-M
print text maps
-e
print except entries
-m
force architecture selection:
pwr|pwrx|pwr2|pwr2s|p2sc|com|403|601|602|603|603e|604|604e|620|
ppc|ppcgr|ppc64|rs64a|rs64b|rs64c|pwr3|pwr4|pwr4x|pwr5|pwr5x|
pwr6|pwr6e|pwr7|pwr8|pwr9|[ppc]970|440|440d|450|450d
-o
output to file
-p
print level
-R
print relative offsets (no added labels)
-r
print relocation table
-S
suppress printing symbolic definitions
-T
disassemble .text only
-t
print symbol table
您可以在 binutils-gnu 中找到 Objdump,您可以使用 yum install binutils-gnu 进行安装。