objdump相关内容
我得到了一个高度优化的编译的C++目标文件(用g++编译,指定-O3 -g -march=amdfam10 -Wall),带有调试信息。 我正在使用objdump -S "objname"。 不幸的是,交错源代码似乎不起作用,因为有时我看到同一组行(不只是一行)多次重复,而且不只是一个代码行,而是多个代码行,然后是只一条装配线,然后是其他四分之三的源代码行,没有太大意义。 例如,我看
..
[root@xxx memcached-1.4.5]# objdump -R memcached-debug |grep freeaddrinfo0000000000629e10 R_X86_64_JUMP_SLOT freeaddrinfo ... (gdb) disas freeaddrinfo函数 freeaddrinfo 的汇编代码转储:0x00000037aa4baf10 : 推送
..
是否有可用于对某些 objdump --disassemble 输出进行后处理以使用循环计数进行注释的脚本?特别是对于 ARM 家族.大多数情况下,这只是与计数的表查找的模式匹配.我猜可能需要像 +5M 这样的注解五个内存周期. Perl、python、bash、C 等都可以.我认为这可以通用,但我对 ARM 感兴趣,它有一个 正交 指令集.这是关于 68HC11 做同样事情的线程.该脚本需要一个
..
objdump 如何计算 elf 段的物理地址 (LMA)?据我所知,elf 节标题仅包含节 [1] 的虚拟地址 (VMA). 通常,VMA 和 LMA 是相同的.但对于初始化数据段 (.data),VMA 是变量的 RAM 位置,LMA 是初始值所在的 ROM 位置.Crt0 负责在调用 main() 之前将初始值复制到 RAM 中.例如: $ objdump -h my.elf部分:I
..
如何用源代码编译库? 我正在使用 android ndk 开发本机库.有时我会从 logcat 收到故障转储消息. 06-18 15:24:58.545: INFO/DEBUG(24667): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***06-18 15:24:58.545:INFO/DEBUG(24667)
..
有没有办法做到这一点?我已经使用了 objdump,但它不会产生任何我知道的任何汇编程序都会接受的汇编输出.我希望能够更改可执行文件中的指令,然后再对其进行测试. 解决方案 我认为没有任何可靠的方法可以做到这一点.机器码格式非常复杂,比汇编文件还要复杂.实际上不可能采用编译后的二进制文件(例如,ELF 格式)并生成一个源汇编程序,该程序将编译为相同(或足够相似)的二进制文件.要了解差异,请
..
我怎么能用objdump 之类的东西判断一个目标文件是否是用-fPIC 构建的? 解决方案 答案取决于平台.在大多数平台上,如果输出来自 readelf --relocs foo.o |egrep '(GOT|PLT|JU?MP_SLOT)' 为空,则 foo.o 未使用 -fPIC 编译,或者 foo.o 不包含任何代码,其中-fPIC 很重要.
..
我需要一种方法来分析我的 ARM 的 GCC 编译器的输出文件.我正在为裸机编译,我非常关心大小.我可以使用交叉编译器提供的 arm-none-eabi-objdump 但如果存在用于此任务的工具,解析输出并不是我渴望做的事情.您知道存在这样的工具吗?我的搜索没有结果. 还有一件事,我自己代码中的每个函数都在自己的部分中. 解决方案 您可以使用 nm 和 size 来获取函数和 EL
..
我正在使用 aarch64-linux-gnu-objdump 反汇编部分 ARM v8 程序.它适用于 V8 64 位指令,但在模式更改为 V7 指令集(A32)时失败 - 代码作为 V8 指令集启动,切换到 A32(AArch32 执行状态),然后切换到 T32 - 拇指指令集.如何反汇编A32和T32指令?当模式切换时,我是否需要将代码分解成部分,以便我有单独的指令模式块? 任何帮助将
..
我有一个奇怪的问题.如果我使用 objdump -d 来反汇编 ARM 二进制文件,它可以解析分支指令的函数(系统库)名称,例如: 8404: e581e000 str lr, [r1]8408: e59f0028 ldr r0, [pc, #40] ;第8438章840c:ebffffc1 bl 8318 8410: e59f0028 ldr r0, [pc, #40]
..
我在 Ubuntu 14.04 上为 ARM 平台构建了一个共享库.该文件已成功编译和构建.我可以使用 nm 命令检查导出的符号,但是当我检查 .so 文件头时,我得到了架构未知的信息. 这个库是否正确构建,为什么库架构未知? objdump -f libMyLib.solibMyLib.so:文件格式 elf32-little架构:未知!,标志 0x00000150:HAS_SYMS、动
..
我在 Ubuntu 14.04 上为 ARM 平台构建了一个共享库.该文件已成功编译和构建.我可以使用 nm 命令检查导出的符号,但是当我检查 .so 文件头时,我得到了架构未知的信息. 这个库是否正确构建,为什么库架构未知? objdump -f libMyLib.solibMyLib.so:文件格式 elf32-little架构:未知!,标志 0x00000150:HAS_SYMS、动
..
我正在使用 arm-linux-gnueabi-gcc 在 Linux 中为 ARM 处理器编译 C 程序.但是,我不确定它编译的默认 ARM 模式是什么. 例如,对于 C 代码: test.c unsigned int main(){返回 0x1ffff;}arm-linux-gnueabi-gcc -o test test.c 现在,当我用 objdump 查看 main()
..
我正在尝试使用 gcc 反汇编为 ARM 构建的对象.不幸的是,objdump 试图猜测代码是否是 ARM 和 Thumb,并且弄错了:它认为我的代码是 Thumb,而实际上它是 ARM. 我看到 objdump 有一个选项可以强制它将所有指令解释为 Thumb (-Mforce-thumb),但它没有一个选项来强制 ARM 模式! 这对我来说似乎是一个非常奇怪的遗漏,它严重阻碍了我完
..
我使用 ARM-GCC 4.7.4 为 Cortex-M4 编译代码.对于我们的调试工具,我需要以人类可读的格式(例如 .txt)了解所有变量的名称、类型和地址.地图文件提供了大部分信息,遗憾的是没有提供如下结构内容: typedef struct { float32_t Ref;//输入:参考值float32_t Fdb;//变量:反馈值float32_t 错误;//输入:控制错误float3
..
我正在使用 aarch64-linux-gnu-objdump 反汇编部分 ARM v8 程序.它适用于 V8 64 位指令,但在模式更改为 V7 指令集(A32)时失败 - 代码作为 V8 指令集启动,切换到 A32(AArch32 执行状态),然后切换到 T32 - 拇指指令集.如何反汇编A32和T32指令?当模式切换时,我是否需要将代码分解成部分,以便我有单独的指令模式块? 任何帮助将
..
我有一个目标文件,正在尝试反汇编它.当我使用: objdump -d example.o 我得到一个elf64-x86-64文件格式的程序集. 我正在尝试将其反汇编为 ARM,我该怎么做? 解决方案 如果你想做ARM代码的反汇编,你最好有一个ARM工具链,这是我得到的: http://bb.osmocom.org/trac/wiki/toolchain 有了这个之后,
..
是否有脚本可用于对某些 objdump --disassemble 输出进行后期处理以使用循环计数进行注释?特别是对于 ARM 系列.大多数情况下,这只是一个模式匹配和一个表查找计数.我猜可能需要像 +5M 这样的注释,用于五个内存周期. Perl、python、bash、C 等都很好.我认为这可以通用,但我对 ARM 感兴趣,它有一个 正交 指令集.这是一个关于 68HC11 做同样事情的线程.
..
要反汇编我使用的程序 objdump -d 工具.是否有可能获得与 objdump 相同的输出,以便在没有 exe 文件的情况下运行进程?我怎样才能用 C 语言从其他程序中做到这一点?我知道存在像 GDB 这样的调试器,但我需要在 C 中使用该功能.由于我的程序,我想获得带有反汇编功能的输出文件以运行进程.我有一个进程的PID.我正在使用 Ubuntu. 解决方案 是否有可能获得与 o
..
我一直在尝试将此C程序编译为汇编程序,但效果不佳. 我正在阅读Dennis Yurichev初学者反向工程,但我没有得到相同的输出.它是一个简单的hello world语句.我正在尝试获取32位输出 #includeint main(){printf("hello,world \ n");返回0;} 这是书中所说的输出应该是的 主进程附近var_10 = dwo
..