C 使用GDB在x86机器上进行MIPS反汇编;可能的
我有一台x86开发机器,正在为mips开发内核模块。我想拆开一个例程,找出模块的问题 所以我的问题是 “我可以在x86机器上拆解它吗,否则我将不得不使用MIPS开发机器?”C 使用GDB在x86机器上进行MIPS反汇编;可能的,c,assembly,gdb,x86,mips,C,Assembly,Gdb,X86,Mips,我有一台x86开发机器,正在为mips开发内核模块。我想拆开一个例程,找出模块的问题 所以我的问题是 “我可以在x86机器上拆解它吗,否则我将不得不使用MIPS开发机器?” 我试过了,但它是在x86指令集中反汇编的。您基本上需要某种形式的。交叉编译器允许您在主机(您的示例中为x86)上为目标计算机(您的示例中为MIPS)进行编译。因此,您可以从x86机器生成MIPS二进制文件。此外,您还将获得与编译器关联的所有其他工具,例如objdump。这是你的旅行指南 假设您使用objdump反汇编二进制文
我试过了,但它是在x86指令集中反汇编的。您基本上需要某种形式的。交叉编译器允许您在主机(您的示例中为x86)上为目标计算机(您的示例中为MIPS)进行编译。因此,您可以从x86机器生成MIPS二进制文件。此外,您还将获得与编译器关联的所有其他工具,例如
objdump
。这是你的旅行指南
假设您使用objdump
反汇编二进制文件,则可能不需要构建交叉编译器objdump
属于,可能只需要编译binutils以使用MIPS作为目标(我从未尝试创建binutils的跨平台构建,因此我不能100%确定)
编辑:我刚刚又读了一遍标题,意识到您使用的是
gdb
。在这种情况下,我相信您需要创建一个完整的交叉编译器,并创建一个跨平台版本的gdb
如果您使用的是一个预构建的工具链,那么它可能已经包含了一个交叉编译的gdb版本。如果没有,您可以按照下面的答案构建自己的。mpx核心是一个mips克隆,浏览repo trunk/gcc/build\u gcc\u linux.zip有一个构建脚本。这些补丁只需删除mpx不支持的指令,您无需应用它们。它构建了一个gdb以及其他工具,您可以使用这些工具将其分解为自己的内容。顺便说一句,不需要gdb只反汇编binutils。但是在交叉编译的情况下,我必须在MIPS机器上执行实用程序。据我所知,交叉编译是“在arch 1上编译代码以在arch 2上运行”而不是“在arch 1上编译代码以在arch 1上运行并为arch 2工作”OBJDUMP解决方案有效。现在它清楚地显示了mips指令集和寄存器。非常感谢。你们太棒了。