linux - 为什么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 个作为示例。这些空白正在中断我正在运行的程序。即使我跳过这些地址的执行,我也不知道在哪里停止。
解决方案
推荐阅读
- node.js - jest.config.ts:从 Github Actions 运行 jest 时出现“registerer.enabled 不是函数”错误
- githooks - 在 WSL2 中无法运行自定义预提交 githoo
- r - 时间序列中的“使用非唯一‘x’值的交叉验证似乎值得怀疑”
- copy - 如何复制excel中的每一行并粘贴两次
- html - 谁能解释为什么 Bootstrap 按钮会导致滚动链接定位效果警告?
- amazon-web-services - AWS DataBrew - ValueError:无法解析数据类型:十进制(1,-3317)
- sql - SQL - 字母数字排序
- haskell - IHP 中的重载标签
- r - 张量流有问题吗?
- php - 创建一个数组,该数组将保存当前循环的所有信息值,并将其中一些值插入到我的链接中