首页 > 解决方案 > 为什么ELF文件有这么多空格?

问题描述

我对奇怪的片段感到抱歉。我将无法粘贴确切的代码。

以下来自 ELF 文件的列表显示了它们的地址和命令。

    0x4000XXXX:     [someInstr] [someReg], [someReg2], [someReg3]
    0x4000XXXY:     [someInstr] [someRegValue], [somereg3]
    0x4000XXXZ:     [jumpInstruction] [someReg3] + 0xXXX, [someReg4]
    0x4000XXXA:     [someInstr]
    0x4000XXXB:     [someInstr]
    0x4000XXXC:     [someInstr]
    0x4000XXXD:         

第三条指令将0xXXX[这是一些地址值]添加到someReg3寄存器中的值。去那里,

    0x4000YYYY:     [someInstruction]
    0x4000YYYZ:     [someInstruction]
    0x4000YYYX:     [someInstruction]
    0x4000YYYA:     

我们看到一旦0x4000YYYA出现地址,执行将停止,因为它是空白的。[上面的指令都是线性的,比如OR,AND等]

我的问题是,为什么还有空白?

在我上面给出的示例中,我不知道确切的“结束”指令在哪里,但是使用nm -S [filename]并且readelf -l [filename]我能够估计 2 个端点。不幸的是,这些地址有未实现的指令,它会导致程序中断。该文件有很多空格,但我仅包含 2 个作为示例。这些空白正在中断我正在运行的程序。即使我跳过这些地址的执行,我也不知道在哪里停止。

标签: linuxelfsparc

解决方案


推荐阅读