【发布时间】:2012-07-17 11:50:48
【问题描述】:
我有一台 x86 开发机器并为 mips 开发内核模块。我想反汇编一个例程来查找模块的问题。
所以我的问题是 “我可以在 x86 机器上拆解它,否则我必须得到 MIPS 开发机器?”
我试过了,但它在 x86 指令集中反汇编。
【问题讨论】:
-
如果您使用的是预构建的工具链,它可能已经包含了 gdb 的交叉编译版本。如果没有,您可以按照下面的答案中所述构建自己的。
我有一台 x86 开发机器并为 mips 开发内核模块。我想反汇编一个例程来查找模块的问题。
所以我的问题是 “我可以在 x86 机器上拆解它,否则我必须得到 MIPS 开发机器?”
我试过了,但它在 x86 指令集中反汇编。
【问题讨论】:
你基本上需要某种形式的cross compilation。交叉编译器将允许您在主机(在您的情况下为 x86)上为目标机器(在您的情况下为 MIPS)编译。因此,您将能够从您的 x86 机器生成 MIPS 二进制文件。此外,您还将获得与编译器相关的所有其他工具,例如objdump。这里有how to build a cross compiler for GCC 的指南。
假设您使用objdump 反汇编二进制文件,您可能不需要构建交叉编译器。 objdump 属于 binutils 并且可能只编译 binutils 以使用 MIPS 作为目标(我从未尝试创建 binutils 的跨平台构建,所以我不是 100% 确定)。
编辑:我刚刚又读了一遍标题,发现您使用的是gdb。在这种情况下,我相信您需要创建一个完整的交叉编译器,并创建一个跨平台版本的gdb。
【讨论】: