我在 C 中有以下带有内联程序集的代码: 在底部我插入了内联... 当我使用(aarch64 的交叉编译)生成 object 代码时,我插入了内联: 当我使用以下方法将此二进制文件与我的主文件链接时: 然后我对此进行 object 转储,以检查汇编指令是否存在,使用: 内联汇编不存在....关于删除 ...
我在 C 中有以下带有内联程序集的代码: 在底部我插入了内联... 当我使用(aarch64 的交叉编译)生成 object 代码时,我插入了内联: 当我使用以下方法将此二进制文件与我的主文件链接时: 然后我对此进行 object 转储,以检查汇编指令是否存在,使用: 内联汇编不存在....关于删除 ...
我正在尝试使用 XCode 最新 (13.4.1) 版本在 M1 处理器 MacBook Pro 上编译“WebViewGold”ios 应用程序。 我一直在努力寻找解决这些 XCode 错误代码的方法。 我浏览了线程中的相关答案,例如: Building for iOS Simulator,bu ...
我有一个生成的 obj 文件,我想在 google colab 中对其进行可视化。 直接在 google colab 中可视化它的最简单方法是什么? 一个(诚然温和的)谷歌搜索没有返回太多...... ...
我正在为一个开源项目开发链接器。 目标架构是AMD_X86_X64 。 在AMD_X86_X64规范中声明了 ELF 的重定位类型的计算,例如, R_X86_64_64计算为S + A 。 如何在 COFF 中进行这些计算我无法在网上找到它们? ...
所以我正在上一门课,在那里我得到了一个目标文件,需要将它逆向工程为 c++ 代码。 我被告知使用的命令是“gdb assignment6_1.o”以在 gdb 中打开它,“disass main”以查看汇编代码。 我自己也在使用“objdump -dr assignment6_1.o”,因为它会输 ...
我学习底层的东西已经有一段时间了,我对 PE 文件及其工作方式非常熟悉。 但我一直无法找到他们的前身.o文件的任何文档。 我正在寻找对它们的实际逐字节结构的深入研究。 .o文件的格式取决于什么? 它甚至是特定于平台的吗? 也许特定于编译器? 在哪里可以找到有关.o文件的文件格式的文档? 最感兴趣 ...
在我的 FASM 项目(对象)中,我正在尝试创建一个跳转表并且我对每个跳转地址使用dq但有一个问题! 对于每个dq.jmp1 (跳转地址定义),我的 final.o 文件的总大小将增加 24 个字节(加上.jmp1地址的 8 个字节(总共 32 个字节))! 那额外的 24 个字节是什么? 有什么 ...
所以一直在学习汇编,明白了source.s -> assembler -> source.o -> linker -> executable的过程。 但是我一直在想,如果没有其他object个文件我需要执行我的程序。 为什么我不能只运行 object 文件? 例如:像这样简 ...
根据关于 ELF 文件格式的 oracles 文档, 64 位 elf 符号的大小为 30 个字节(8 + 1 + 1 + 4 + 8 + 8),但是当我使用 readelf 打印出 elf 文件的部分标题时,&然后检查符号表部分 header 的“EntSize”(条目大小)成员,它读取符 ...
我有一个 linker 文件,用作 Gnu Arm 嵌入式工具链的输入。 除其他外,它包含一个 output 部分,如下所示: ,其中 FLASH 是 MEMORY 块。 我的问题是,当我使用 LTO(链接时优化)编译 C++ 文件时,我的一些代码放在生成的 object 文件中的非“.text” ...
我有一个 hello world 程序: 我可以将它组装成一个 object 文件: 此 object 文件不可执行。 当我尝试执行它时,我得到: 我需要调用 linker 以使其可行: 至此, hello程序开始工作了。 但是,在这里使用 linker 让我感到困惑......我没有在任何外部库 ...
在编译 ac 文件时,gcc 默认将其编译为名为“a.out”的文件。 我的教授说输出文件包含二进制文件,但是当我打开它时,我通常会遇到不可读的文本(VS Code 说的是“此文件包含不受支持的文本编码”)。 我假设通过“二进制文件”,我将能够在文件中看到字面的零和一,但情况似乎并非如此。 那么它的 ...
我是 dwarf 的addr2line ,并使用了一些工具,如addr2line 、 objectdump 。 但是,我面临的问题是我想获取映射到其源代码行的目标文件/静态库中的所有指令。 棘手的部分是目标文件中没有地址,因为每个函数都从0x00开始。 所以addr2line不起作用(或者我没有正确 ...
我是 fortran 的新手,我试图了解编译所需的一切。 到目前为止,一切都很好,但有些东西我没有得到。 假设我修改了代码但我的修改不会改变 .mod 文件的内容,我是否能够在不重新创建 .mod 文件的情况下编译和创建目标文件,如果是,我应该怎么做。 我试图在互联网上搜索,但我并没有真正找到答案。 ...
任何人都可以告诉我数据段是否与堆段相同,如果不是,请解释一下两者之间的区别,我理解堆栈和堆之间的区别,但在某些书中,它们将数据段称为单独的elemet,谢谢你的帮助!!! ...
我很欣赏这可能是一个非常愚蠢的问题。 机器代码在 ELF 文件或 Mach-O 文件中布局的过程是否有名称? 我想了解更多关于这个过程的信息,但我不确定要搜索什么。 “链接”似乎是错误的词,因为在此之前构建 object 文件发生。 ...
问题如标题所述:是否可以将 ELF 二进制文件hello_world转换为 object 文件hello_world.o ,该文件可用于生成新的二进制hello_world_2 ,它是hello_world的副本? 所以从我的搜索来看,这似乎有点困难。 我找到了一种最接近的方法: 使用objcopy ...
我想知道如何获得这种berkeley格式的输出: $ size --format=berkeley /bin/ls text data bss dec hex filename 124042 4728 4832 133602 209e2 /bi ...
我有一个 object 文件,其中有一个部分包含正确的 ASCII(或 Latin-1?)文本。 所以,如果我写: 长这样(只呈现中间几行,明显很长): 我的问题:我可以让 objdump 只打印文本,而不打印行索引和十六进制值吗? 并至少正确打印所有打印字符(例如 0x0a 的换行符)? 或者 ...
linux Debian 巴斯特 go版本go1.11.6 linux/amd64 gcc 版本 8.3.0 (Debian 8.3.0-6) libmylib.go mylib.h 主文件 CGO_ENABLED=1 go build -o libmylib.so -buildmode ...