编译静态库时设置较早的最低内核版本
我的发行版(Arch Linux)最近增加了其工具链支持的最低 Linux 内核版本。我正在编译一个静态链接的 Web 应用程序,然后上传到 Web 服务器,而 Web 服…
如何在不使用gcc的情况下将使用C标准库的气体汇编程序与ld链接?
作为更准确地了解 C 程序如何工作以及程序能够使用 libc 必须存在的最低内容级别的练习,我自己尝试主要使用 Gas 和 ld 在 x86 汇编中进行编程。 作为…
gdb\bfd:获取子变量地址或大小或偏移量
我正在使用 gdb 和 libbfd 从 elf 文件中检索全局变量信息并显示它。 我可以从 libbfd 获取以下数据:全局变量名称、地址和大小。 我使用 gdb 和 gdb\…
Mac / iPhone 的 objcopy 等效项?
我想使用 Mac 上相当于 binutils 的 objcopy --redefine-syms 工具的东西来重命名对象文件 (.o) 内的符号。 我没有找到arm-apple-darwin10-objcopy。…
objdump ELF 和 Windows
我对这个主题相当陌生,即 ELF 和任何与 Linux 相关的东西。我正在尝试编写 ELF 文件,并且更喜欢在 WinXP 上执行此操作。 我的问题是,这可以用 MS V…
使用 dlopen() 动态加载共享对象
我正在开发一个普通的 X11 应用程序。 默认情况下,我的应用程序仅需要 libX11.so 和标准 gcc C 和数学库。 该应用程序可以通过 Xfixes、Xrender 和 A…
C 编译器在尝试构建 Binutils 时无法创建可执行文件
我正在尝试从头开始构建 Linux,现在我位于 第 5.4 章,告诉我如何构建 Binutils。我有 binutils 2.20 的源代码,但是当我尝试构建它时: time { ./bi…
给定一个由 C++ 构建的 ELF 二进制文件;使用gcc,我如何确定其中某种类型的大小?
有什么方法可以使用 binutils 工具来实现这一点吗?例如: // x.cc typedef long long MyInt int main(int argc, char* argv[]) { // blah blah blah …
如何从 objdump 获取信息
我在读取 Linux 中的可执行文件中转储的信息时遇到问题。 信息如下: 804a0ea: 04 08 add $0x8, %al ... 804a0f4: a6 cmpsb %es:(íi),%ds:(%esi) 我有…
如何使用 only-keep-debug 反转 objcopy 的条带?
在现代 Linux 中,几乎所有对象都被剥离并分成两部分(两个文件)。第一个是可执行文件本身,第二个是从原始 ELF 中剥离出来的调试符号。此类文件是通…
如何从目标文件中获取全局变量的初始化值?
如果您有一个目标文件,如何获取该目标文件数据段中全局变量的初始化值?例如,假设我执行了以下操作: # I'm interested in the variable foo inside…
ELF共享库:重定位偏移超出范围
有一个软件包 elfutils,其中包含一个名为 eu-elflint 的程序,用于检查 ELF 二进制文件(就像 C 的 lint - 因此得名) 。 只是出于好奇,我用这个工…
Solaris elfedit:Linux 有类似的东西吗? (共享库编辑器)?
Linux:有没有办法编辑已编译的共享库? 具体来说,我正在搜索如何在已编译的二进制共享库上添加 DT_SYMBOLIC 标志? 这就是我问这个的原因: 组成 我…