问题标签 [objcopy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
strip - 如何使用 only-keep-debug 反转 objcopy 的条带?
在现代 linux 中,几乎所有对象都被剥离并分成两部分(两个文件)。首先是可执行文件本身,其次是调试符号,从原始 ELF 中剥离出来。这样的文件是用
如何将调试信息合并binary
到binary.dbg
ELF 文件中?我想重新创建未剥离的原始二进制文件。它不能逐字节地等于原来的,但它必须有一个调试符号在里面。
PS 是的,我知道gnu.debuglink
部分,但它不适用于某些调试器(etnus)和反汇编器(objdump 无法恢复符号信息)
c - 如何从可执行文件中提取数组?
我想做这个问题的反面。
我将文件作为数组嵌入到可执行文件中,稍后我想从可执行文件中提取嵌入的文件。
似乎 objcopy 在这里可能有用,但我还没有想出正确的咒语。
(编辑:澄清问题,我最初在编辑时以某种方式删除了它的症结......)
gcc - powerpc-eabi-objcopy 创建 1GByte 文件
我的 elf 文件大约 1MByte,包含所有调试符号。当我尝试使用“powerpc-eabi-objcopy -O binary out.elf out.bin”创建二进制文件时,out.bin 的大小为 1GByte。
构建脚本如下所示
关于这个问题的任何想法?
谢谢,
弗里德里希
macos - Mac / iPhone 的 objcopy 等价物?
我想重命名目标文件(.o)中的符号,它与 Mac 上的 binutilsobjcopy --redefine-syms
工具等效。
我发现没有arm-apple-darwin10-objcopy
。我尝试了 MacPorts 的arm-elf-binutils
端口,也尝试了一些尝试otool
,segedit
无论成功与否。
请问有什么想法吗?
c - 使用“objcopy --redefine-sym add=new_ad”后仍然报告“未定义符号:new_add”
我需要加载两个动态库,并且存在一个函数名冲突。所以我使用命令“objcopy --redefine-sym add=new_add libmy_test.so libmy_test_new.so”来修改符号名称。
但它仍然报告“错误:./libmy_test_new.so:未定义符号:new_add”
以下是我的测试代码。
c - 带有 objcopy 的巨大二进制文件
当我在 ARM9 处理器的基本 C 程序中定义全局变量时遇到问题。我正在使用 EABI GNU 编译器,从 12KB 精灵生成的二进制文件是 4GB!我认为问题出在我的分散文件上,但我很难理解它。
我有 256KB 的 ROM(基地址 0xFFFF0000)和 32KB 的 RAM(基地址 0x01000000)
我的程序如下:
如果我将 a 声明为局部变量,即没有 .data 部分,那么一切正常。美好的。非常感谢任何帮助。
--2011 年 3 月 16 日 --
谁能帮忙解决这个问题,我无处可去,已经阅读了手册、论坛等...
我的引导、编译命令和 objcopy 命令粘贴在下面
arm-none-eabi-gcc -mcpu=arm926ej-s -Wall -nostartfiles -Wall main.c boot.s -o main.elf -T \ scatter_file
arm-none-eabi-objcopy ./main.elf --output-目标=二进制 ./main.bin
arm-none-eabi-objdump ./main.elf --disassemble-all > ./main.dis
linux - 将附加代码合并到可执行文件中(arm-linux)
我正在尝试将一些额外的日志记录代码合并到一个静态链接的(android arm linux)可执行文件中。
(正常的跟踪方法似乎不起作用,因为它是一个守护进程,它在做任何有趣的事情之前 clone()s - 告诉 strace 跟随它只会让它崩溃)。
十六进制编辑现有代码以将跳转指令插入新代码已经过测试和工作,问题是将新代码合并到可执行文件中,这样它不会干扰现有段,并且确实被加载到一个可执行的页面。
我已经能够将所有附加代码压缩到单个目标文件部分,但无法弄清楚如何使用 objcopy(甚至 ld)以正确加载的方式合并它 - 似乎我需要调整大小并移动现有负载段,或者添加一个额外的负载段。
在共享库中添加代码可能是另一种选择,如果有办法将必要的存根添加到已链接且当前为静态的可执行文件中(然后我将在跳转指令中进行十六进制编辑到存根的已知位置,运行时然后链接器将指向添加的代码)
gnu-toolchain - 如何为 sde-objcopy 指定架构?
我需要使用 sde-objcopy 将图片转换为目标文件(.o),然后我可以在我们的无操作系统系统中使用这张图片。我已经测试了 objcopy 命令,它在我的 PC(Fedora 12)上运行良好。例如,下面的命令会将 test.jpg 转换为 test.o。
objcopy -I binary -O elf32-i386 -B i386 ../stdy/test.jpg test.o
以下是我的问题:
一个。sde-objcopy 没有“-B”选项来指定架构,但如果我没有指定架构,它将响应如下警告:
$ sde-objcopy -I binary -O elf32-little test.jpg test.o
sde-objcopy:警告:输出文件不能代表架构未知!
如何解决此警告?
乙。似乎 objcopy 使用文件名在目标文件中生成符号。如果我使用完整路径(例如/home/owner/stdy/test.jpg
)作为 objcopy 的参数,它将生成长命名符号。有什么优雅的方法可以解决这个问题吗?
$ objcopy -I binary -O elf32-i386 -B i386 ../stdy/test.jpg test.o
$ nm test.o