8得票1回答
从ELF文件中读取符号内容的Trace32命令

问题场景: 简单来说,我们是否有Trace32命令可以从已加载到目标上的ELF文件中读取符号(及其内容)?我们有这种特殊情况,即将ELF文件的应用程序特定调试符号作为“ .noload ”部分的一部分制作,这意味着符号/内容是ELF文件的一部分(使用readelf -a xxxx.elf_fi...

9得票1回答
readelf: 错误:不是ELF文件-开头具有错误的魔数字节。

我编写了一个程序,它可以正常运行。但是当我使用“readelf”检查是否存在调试信息时,出现了错误: readelf: Error: Not an ELF file - it has the wrong magic bytes at the start readelf: Error:...

12得票1回答
解释readelf -S输出

我正在尝试将一个 ELF 文件加载到我制作的 MIPS 模拟器中。我遇到的问题是我不太理解 ELF 节头偏移量背后的含义。当我进行段转储时,段 25-31 和 33-35 “开始”于 0x00000000,但头部表明段从某个值的偏移量开始(例如 010190)。另外,在 -S 节的开头,rea...

8得票1回答
如何修补第三方的.so文件以访问未导出的符号(C++)

我有一些专有格式的二进制.fic文件,我有一个来自该供应商的wd250hf64.so文件,其中包含了一个C++方法CComposanteHyperFile::HExporteXML(wchar_t* const path)。 我可以使用nm命令查看这个方法。 $ nm --demangle...

21得票2回答
ELF文件中的“节到段映射”存储在哪里?

作为尝试从零开始编写编译器的一部分,我目前正在处理处理ELF文件的部分。 经过阅读多篇文章和规范,我仍然不太明白节到段映射存储在哪里。 当观察使用NASM+ld生成的小型可执行文件时,我可以看到.text节被某种方式映射到LOAD类型的程序头上,但是如何实现呢? 给定一个小型(工作)可执行...

36得票1回答
nm和"readelf -s"的区别

假设我们有一个名为libtest.so的共享库,它里面有一个名为"foo"的函数。 使用strip命令来丢弃libtest.so中所有的符号。$strip libtest.so 所以,现在如果我们使用:$nm libtest.so 它将打印出: nm: libtest.so: no sym...

12得票1回答
为什么register_tm_clones和deregister_tm_clones引用.bss段之外的地址?这段内存分配在哪里?

register_tm_clones和deregister_tm_clones引用了超出我的RW段结束地址的内存地址。这个内存是如何被追踪的? 示例:在下面的示例中,deregister_tm_clones引用了内存地址0x601077,但我们分配的最后一个RW段,.bss从地址0x6010...

7得票1回答
为什么我的简单`main`程序的ELF头部显示它是一个`DYN(共享对象文件)`,而不是可执行文件?

以下是一个非常简单的C++程序: // main.cpp int main() {} 我的Makefile会生成以下命令来编译程序。 ❯ make g++ -O0 -fverbose-asm -o main main.cpp 我使用命令file来检查它是否为ELF可执行文件: ...

57得票1回答
readelf与objdump:为什么两者都需要?

我需要学习有关ELF文件布局的知识,因为我正在开展一个项目。我注意到这些工具的存在。 为什么所有Linux发行版都包括readelf和objdump?这些工具互补吗?在什么情况下我更倾向于使用其中之一?

32得票1回答
readelf -s不输出完整的变量名称

我需要从一个已编译的C程序文件中获取全局符号。我使用的是Linux命令readelf -s filePath,当我使用该命令时,我得到以下结果: 我用蓝色矩形框出来,展示变量名没有正确显示。它们只能显示25个字符,如何才能显示完整名称?