问题标签 [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.
android - How to compile library with source code with NDK tools?
How to compile library with source code ?
I am developing the native library with android ndk. Sometimes I got the crash dump messages from logcat.
It is a problem how to find the real source code at address 2e11c? I search some solutions from google, someone said:
But no source code in the output text, only assembly code there. I use the sample hello-jni project in the ndk5r:
Is it possible to show source with -S option ?
[UPDATE solution 2010/06/19]
I found the ndk-gdb tutorial: A debuggable JNI example for Android. it said, ndk-build script will kill my debug symbol. I try to figure out it by runing ndk-build V=1:
The command will strip my debug symbol:
I have no idea to disable the strip command, because my ndk version is different. However, I can use the .so before stripped in the path:
The source code is back:
c - 我可以给 objdump 一个地址并让它反汇编包含函数吗?
我发现不得不反汇编大量库代码只是为了获得足够的上下文来查看导致崩溃的原因真的很烦人。有什么方法可以让我只用 objdump 一个地址,让它为我找到包含函数的边界吗?
编辑:更好的是,我可以让它为我分解整个堆栈跟踪吗?
objdump - objdump 的 Symbol 表的每一列是什么意思?
我有man objdump
,但没有这样的信息。
有人知道这5列是什么意思吗?
c++ - 将 shared_ptr 用于抽象类时,如何在 nm 或 objdump 中找到函数符号?
我将 shared_ptr 用于抽象类 ABC。ABCImpl 类是 ABC 的实现。abc_ptr 是一个shared_ptr<ABC> 指向一个ABCImpl 对象。在调用者函数中,abc_ptr 将调用 ABC 类中的成员函数 (func_in_ABC) 之一。编译成功。但是当我使用 nm 或 objdump 时,我只能看到 abc_ptr 的符号。调用者函数中没有为 func_in_ABC() 显示符号。
任何人都知道为什么,或者我如何在调用者函数中获得 func_in_ABC() 符号的输出?
代码如下: 在 ABC.h 中:
在 ABCImpl.h 中:
在 ABCImpl.cpp 中:
在调用者函数 D.cpp 中:
来自 nm 的 Do 的输出:
如果我在 ABC.h 中更改 func_in_ABC 的定义,则 D.cpp 的编译将失败。我认为它会在编译 Do 时检查类 ABC 的定义但是为什么我在调用者处找不到符号以映射到 ABC 中的定义?
assembly - 反汇编的 x86 elf 可执行文件的部分以及它们运行的时间和顺序
我目前正在学习 x86 汇编并尝试对常规 x86 elf 可执行文件进行一些逆向工程。现在有多个部分,如 init main 等。我做了一些谷歌研究,但没有找到我想要的退出。也许这里有人知道在哪里可以阅读有关此主题的信息,因为我真的很想了解执行哪些部分以及执行顺序。我感谢任何指向该主题的链接以及详细信息。
assembly - objdump 输出 - 列代表什么?
我objdump -r
在一个目标文件上运行并得到以下输出。每一列在这里代表什么?我可能错过了它,但文档没有指定。
ETC
c - GCC/objdump:生成可编译/可构建程序集(穿插 C/C++)源?
这接近于使用 GCC 生成可读的程序集?,但我在这里的上下文是avr-gcc
(并且相应地,avr-objdump
)Atmel(虽然,我想它会适用于整个 GCC 董事会)。
问题是,我有一个包含多个 .c 和 .cpp 文件的项目;它最终被编译成一个可执行文件,与“主”.cpp 文件同名。在这个过程中,我可以通过两种方式获取汇编列表:
- 我可以使用开关指示
gcc
发出汇编列表源(参见Linux 汇编和反汇编介绍) ;-S
在这种情况下,我得到一个文件,其内容如下:/li>
(还没有尝试过;但我猜这段代码是可编译/可构建的......)
- 我可以检查最终的可执行文件,并指示
objdump
使用-S
开关发出汇编列表源;在这种情况下,我得到一个文件,其内容如下:/li>
(我确实尝试构建此代码,但它确实失败了 - 它将“行号”读取为标签)
显然,两个列表(loop
至少对于函数而言)代表相同的汇编代码;除了:
- 一个
gcc
(应该)编译——objdump
一个不编译 - 一个包含所有引用函数的
objdump
列表,这些函数可以在“主”以外的文件中定义(例如,digitalWrite
)——gcc
一个没有 - 一个包含原始的
objdump
C/C++ 源代码行“散布”与程序集(但只是偶尔,而且似乎只适用于 C 文件?) -gcc
一个不
那么,有没有办法获得一个“可编译”的程序集列表,但是具有所有内联函数,并且源 C/C++ 代码(可能在适当的情况下)作为注释散布在其中(因此它们不会干扰与汇编文件的编译)?(没有为 的输出编写解析器objdump
,即:))
gcc - .data.rel.ro 是做什么用的?
我正在使用 objdump 来分析共享对象的内存使用情况。除了 .data 和 .rodata 部分,我还看到了.data.rel.ro部分。
有谁知道这个是干什么用的?
assembly - objdump 和 ARM 与 Thumb
我正在尝试使用 gcc 反汇编为 ARM 构建的对象。不幸的是,objdump 试图猜测代码是否是 ARM 和 Thumb,并且弄错了:它认为我的代码是 Thumb,而实际上它是 ARM。
我看到 objdump 有一个选项可以强制它将所有指令解释为 Thumb ( -Mforce-thumb
),但它没有强制 ARM 模式的选项!
这对我来说似乎是一个非常奇怪的遗漏,并且严重阻碍了我完成工作的能力(我在嵌入式设备上,我唯一的调试方法是查看反汇编)。我尝试了各种方法,包括尝试告诉 objdump 使用不支持 Thumb 的 ARM 架构,但似乎没有任何效果。有任何想法吗?
(是的,我知道这些指令真的是ARM ......)
binutils - nm 和 objdump 的区别
查看手册,objdump
并nm
具有重叠的功能。
你什么时候用每一个?每个命令的最初目的是什么?