33得票1回答
".eh_frame"和".eh_frame_hdr"这两个部分存储了什么内容,确切地说是什么?涉及到IT技术。

我知道,当使用支持异常的语言(例如C++)时,必须向运行时环境提供附加信息来描述在处理异常期间必须解开的调用帧。这些信息包含在对象文件的特殊部分中,例如 .eh_frame 和 .eh_frame_hdr。 但是,这些部分存储了什么样的数据结构?我的意思是,它们可以通过使用任何C结构读取吗?...

32得票5回答
使用-Bsymbolic-functions会有什么缺点吗?

我最近在GNU ld中发现了链接器选项“-Bsymbolic-functions”:-Bsymbolic When creating a shared library, bind references to global symbols to the definition withi...

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

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

31得票3回答
处理ELF重定位——理解重定位、符号、节数据以及它们的协同作用。

简而言之 我试图把这个问题简化,但它是一个复杂的问题,所以最终变得很长。如果你能回答其中任何一部分,或者给出任何建议、提示、资源或任何有用的信息,都将非常有帮助(即使你不能直接解决我的所有问题)。我现在正在头痛难忍。 以下是我遇到的具体问题。请继续阅读下面的内容了解更多信息。 我正在寻求...

29得票7回答
有没有在Windows上查看ELF文件格式的工具/软件?

有很多PE文件浏览器可供选择,如果您感兴趣,以下是一些不错的选择: PE文件格式查看器: PE Explorer http://www.pe-explorer.com/ PE VIew: http://www.magma.ca/~wjr/ PEBrowse P...

29得票1回答
28得票5回答
错误 /lib/x86_64-linux-gnu/libc.so.6:找不到版本为“GLIBC_2.34”的库。

首先,我进行了很多谷歌搜索,但没有找到与我的情况相关的内容。我有一个ELF可执行文件,我正在尝试在我的Ubuntu WSL中运行它。我已经更改了权限 (chmod +x file),但当我运行它时,出现了这个错误。 /lib/x86_64-linux-gnu/libc.so.6: versi...

28得票1回答
什么是“__gmon_start__”符号?

我使用gcc hello.c -o hello -O3编译此代码:#include <stdio.h> int main(void) { printf("Hello world\n"); return 0; } 当我列出重定位时,我得到:test@southpar...

28得票5回答
如何在Linux架构上列出C代码中所有可用函数/符号的即时列表?

假设main.c使用了共享库中的符号和在main.c中声明的本地函数。 有没有一种简单而优雅的方法在运行时打印所有可用函数名称和符号的列表? 这应该是可能的,因为数据加载到了.code段中。

28得票2回答
执行初始化和终结函数

我刚刚阅读了关于 ELF 文件中 init 和 fini 段落的内容,并尝试了一下:#include <stdio.h> int main(){ puts("main"); return 0; } void init(){ puts("init"); } void f...