问题标签 [objdump]
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.
c - 在机器码中查找位置 (gcc/objdump -d)
如果您要在机器输出中检查特定的 C 代码行,您将如何在 objdump 输出中找到它。这是一个例子
我想看看 bar 是否按我的意愿内联。或者你会使用一些替代工具而不是 objdump 吗?
arm - 旧 ARM7TDMI (ARMv4T) 的 objdump 显示新架构的指令?
我非常关心 GNU 的成功,并希望得到一些关于如何处理 ARM 的 objdump 中的潜在错误的反馈......
我正在检查“objdump -D --target=binary -m arm7tdmi”的输出,并看到古代 ARM7TDMI 内核上不存在的指令。
(我正在查看一个随机位文件并将其视为原始二进制文件而不是 ELF 文件。)
例如,mrcc、blx 和 ldc2 只出现在 ARMv5 或更高版本中,但我在上面的命令行开关的输出中看到它们。
(我看到与“-m armv4t”相同的问题。)
我正在使用来自 Ubuntu 9.04 的 2.19.1-multiarch 版本。
这是一个真正的错误还是我必须使用不同的开关?
真挚地,
克里斯
gcc - 我如何使用 objdump 之类的东西来判断是否使用 -fPIC 构建了目标文件?
我怎样才能知道objdump
,如果一个目标文件是用 构建的-fPIC
?
linux - 如何在 Linux 上检查 ELF 文件的数据部分的内容?
我一直在objdump
查看 Linux ELF 二进制文件中的汇编代码。
rodata
有时会通过存储在(只读数据)部分中的跳转表进行间接跳转。
如何获取objdump
或任何其他工具向我显示此数据部分的内容?
我可以执行程序并检查调试器中的相关地址,但我不想这样做,因为它必须以交互方式完成。
理想的答案将确定一个工具,它不仅可以向我显示内容,还可以让我控制显示格式,就像这样od
做一样。
assembly - objdump 输出中的“-0x1(%edx,%ecx,1)”是什么意思?
使用 objdump 来理解二进制文件,我意识到我对 ASM 语法不够流利。下面的概念是什么意思?
当你在做的时候——我应该搜索什么才能找到关于这些概念的文档?
linux-device-driver - Linux System.map 中缺少函数名称和地址
我在 AT91SAM9263 板上进行嵌入式开发并遇到了一个奇怪的问题。它运行 debian Linux 内核 2.6.18.4,并与 arm-linux-gcc 3.4.6 交叉编译,并使用 uClibc-0.9.28 作为 C 库。我正在调试内核设备驱动程序,但 System.map 文件中没有出现特定功能。可以理解的是,因此我无法在其上设置断点。奇怪的是,如果我闯入它的调用函数,我就无法进入它——使用 gdb 的 nexti 命令执行它但跳过源代码。该函数是 atmel_rx_chars(struct uart_port *port)。它是在 atmel_serial.c 中声明的静态 void 函数,其示例出现在 [1] 中。同一文件中还有其他静态 void 函数 (atmel_tx_chars(struct uart_port *port), 例如)在同一个文件中声明并且实际上在 System.map 文件中被索引。根据 [2] “System.map 由 'nm vmlinux' 生成,并且不相关或无趣的符号被剔除。” 我尝试使用 nm(以及 objdump)来查看所有符号,但它仍然没有出现在输出中。但是,当我 grep atmel_rx_chars vmlinux 时,它会返回匹配项。我曾经认为自己是一个超级用户,但在这之后我真的很难过。任何建议将不胜感激。我曾经认为自己是一个超级用户,但在这之后我真的很难过。任何建议将不胜感激。我曾经认为自己是一个超级用户,但在这之后我真的很难过。任何建议将不胜感激。
谢谢,
杰斯
[1] http://lxr.free-electrons.com/source/drivers/serial/atmel_serial.c#L379
[2]http://www.faqs.org/docs/Linux-HOWTO/Kernel-HOWTO.html#systemmap
strip - 如何使用 only-keep-debug 反转 objcopy 的条带?
在现代 linux 中,几乎所有对象都被剥离并分成两部分(两个文件)。首先是可执行文件本身,其次是调试符号,从原始 ELF 中剥离出来。这样的文件是用
如何将调试信息合并binary
到binary.dbg
ELF 文件中?我想重新创建未剥离的原始二进制文件。它不能逐字节地等于原来的,但它必须有一个调试符号在里面。
PS 是的,我知道gnu.debuglink
部分,但它不适用于某些调试器(etnus)和反汇编器(objdump 无法恢复符号信息)
c - objdump 如何使用 -S 选项显示源代码?
二进制文件中是否有对源文件的引用?我尝试在二进制文件上运行字符串,但找不到对列出的源文件的任何引用...
assembly - 如何从 objdump 中获取信息
读取从 linux 中的可执行文件中转储的信息时遇到问题。信息如下:
我有两个问题:
- 地址 804a0ea 和 804a0f4 是什么意思?进程地址空间中的虚拟地址?
- 是什么意思?如何在地址 804a0f0 获得指令?
提前致谢。
关于这部分代码的更多信息:
希望任何人都可以帮助我。:-)
assembly - 什么是寄存器 %eiz?
在以下我使用的汇编代码中objdump
:
什么是注册%eiz
?前面的代码是什么意思?