问题标签 [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.

0 投票
4 回答
3842 浏览

c - 在机器码中查找位置 (gcc/objdump -d)

如果您要在机器输出中检查特定的 C 代码行,您将如何在 objdump 输出中找到它。这是一个例子

我想看看 bar 是否按我的意愿内联。或者你会使用一些替代工具而不是 objdump 吗?

0 投票
2 回答
1222 浏览

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 版本。

这是一个真正的错误还是我必须使用不同的开关?

真挚地,

克里斯

0 投票
6 回答
34592 浏览

gcc - 我如何使用 objdump 之类的东西来判断是否使用 -fPIC 构建了目标文件?

我怎样才能知道objdump,如果一个目标文件是用 构建的-fPIC

0 投票
3 回答
118514 浏览

linux - 如何在 Linux 上检查 ELF 文件的数据部分的内容?

我一直在objdump查看 Linux ELF 二进制文件中的汇编代码。

rodata有时会通过存储在(只读数据)部分中的跳转表进行间接跳转。

如何获取objdump或任何其他工具向我显示此数据部分的内容?

我可以执行程序并检查调试器中的相关地址,但我不想这样做,因为它必须以交互方式完成。

理想的答案将确定一个工具,它不仅可以向我显示内容,还可以让我控制显示格式,就像这样od做一样。

0 投票
2 回答
1001 浏览

assembly - objdump 输出中的“-0x1(%edx,%ecx,1)”是什么意思?

使用 objdump 来理解二进制文件,我意识到我对 ASM 语法不够流利。下面的概念是什么意思?

当你在做的时候——我应该搜索什么才能找到关于这些概念的文档?

0 投票
2 回答
1213 浏览

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

0 投票
1 回答
7637 浏览

strip - 如何使用 only-keep-debug 反转 objcopy 的条带?

在现代 linux 中,几乎所有对象都被剥离并分成两部分(两个文件)。首先是可执行文件本身,其次是调试符号,从原始 ELF 中剥离出来。这样的文件是用

如何将调试信息合并binarybinary.dbgELF 文件中?我想重新创建未剥离的原始二进制文件。它不能逐字节地等于原来的,但它必须有一个调试符号在里面。

PS 是的,我知道gnu.debuglink部分,但它不适用于某些调试器(etnus)和反汇编器(objdump 无法恢复符号信息)

0 投票
3 回答
52636 浏览

c - objdump 如何使用 -S 选项显示源代码?

二进制文件中是否有对源文件的引用?我尝试在二进制文件上运行字符串,但找不到对列出的源文件的任何引用...

0 投票
2 回答
1744 浏览

assembly - 如何从 objdump 中获取信息

读取从 linux 中的可执行文件中转储的信息时遇到问题。信息如下:

我有两个问题:

  1. 地址 804a0ea 和 804a0f4 是什么意思?进程地址空间中的虚拟地址?
  2. 是什么意思?如何在地址 804a0f0 获得指令?

提前致谢。

关于这部分代码的更多信息:

希望任何人都可以帮助我。:-)

0 投票
3 回答
9692 浏览

assembly - 什么是寄存器 %eiz?

在以下我使用的汇编代码中objdump

什么是注册%eiz?前面的代码是什么意思?