KDB是linux内核集成的一个调试工具,关于更多KDB的信息,请查阅相关的信息。本文就是移植kdb的反汇编命令ID。
在KDB成为内核自身的一部分的时候,关于ID命令就已经被移除,具体的原因不知道。现在的内核虽然支持kdb了,但是并没有这个命令
ID命令:可以直接对内核的函数进行反汇编,方便对内核死机问题定位。也方面我们了解内核函数的执行过程。
下面是在linux3.0内核中移植ID命令之后的效果:
下面我介绍一下移植的过程:
本文的移植是基于linux3.0内核版本,整体架构是基于MIPS,(kdb还支持x86,powpc,mips等,暂时我只是知道这些)
1、需要的文件
ansidecl.h bfd.h dis-asm.h kdba_id.c kdb_id.c mips-dis.c kdb.h(这个是要放在arch/mips/include/asm下)
在linux内核3.0版本中在kernel/中有dis-asm.h,可以直接进行copy或者调用,
mips-dis.c是KDB反汇编的核心文件,在这个文件中,主要是对mips架构的指令的解析,在内中存储的都是一条32位的指令编码。这个文件就是将内存中指令编