用于旧ARM7TDMI(ARMv4T)的objdump,显示用于新体系结构的说明?
我非常关心GNU的成功,希望得到一些反馈 如何处理ARM的objdump中的潜在错误 我正在检查“objdump-D--target=binary-m arm7tdmi”的输出,并看到 古老的ARM7TDMI内核上不存在的说明 (我正在查看一个随机位文件,并将其视为原始二进制文件,而不是ELF文件。) 例如,mrcc、blx和ldc2仅出现在ARMv5或更高版本中,但我看到了它们 在上面带有命令行开关的输出中 (我发现“-m armv4t”也存在同样的问题。) 我使用的是Ubuntu9.04版本的2.19.1-multiarch 这是一个真正的错误还是我必须使用不同的开关 真诚地用于旧ARM7TDMI(ARMv4T)的objdump,显示用于新体系结构的说明?,arm,objdump,Arm,Objdump,我非常关心GNU的成功,希望得到一些反馈 如何处理ARM的objdump中的潜在错误 我正在检查“objdump-D--target=binary-m arm7tdmi”的输出,并看到 古老的ARM7TDMI内核上不存在的说明 (我正在查看一个随机位文件,并将其视为原始二进制文件,而不是ELF文件。) 例如,mrcc、blx和ldc2仅出现在ARMv5或更高版本中,但我看到了它们 在上面带有命令行开关的输出中 (我发现“-m armv4t”也存在同样的问题。) 我使用的是Ubuntu9.04版本
chris确切地说,这不是一个bug,因为如果你正在查看一个旧的二进制文件,你不会期望在指令流中看到这样的指令,所以它们不会出现 因此,它仍然可以正确显示正确的代码 如果强制objdump反汇编程序反汇编不包含代码但包含其他类型数据的内存区域(例如,使用标志-D),则可能会出现以下异常结果:
- 非指令的数据显示为在该体系结构上有效的指令
- 非指令的数据将显示为在该体系结构上无效的指令
- 非指令的数据显示为非法指令(哦,不!)
您的示例是否给您的工作带来了一些问题(包括不便?这完全不是一个bug,因为如果您查看的是旧二进制文件,您不希望在指令流中看到这些指令,因此它们不会出现 因此,它仍然可以正确显示正确的代码 如果强制objdump反汇编程序反汇编不包含代码但包含其他类型数据的内存区域(例如,使用标志-D),则可能会出现以下异常结果:
- 非指令的数据显示为在该体系结构上有效的指令
- 非指令的数据将显示为在该体系结构上无效的指令
- 非指令的数据显示为非法指令(哦,不!)
您的示例是否给您的工作带来了一些问题(包括不便?对于其他一些体系结构(非ARM),我也发现了这些问题。Objdump不知道您是否正在反汇编代码或数据部分,并将尽最大努力反汇编它,包括常量和其他数据部分。我也发现了一些其他体系结构(非ARM)的这些问题。Objdump不知道您是否正在反汇编代码或数据部分,并会尽最大努力反汇编它,包括常量和其他数据部分。如果输入文件是ELF,我从未见过这种情况发生。如果你试图反汇编一个二进制文件,那么这是完全可能的,而且很有可能。如果输入文件是ELF,我从未见过这种情况发生。如果您试图反汇编二进制文件,那么它是完全可能的,而且最有可能的。