完善了反汇编功能

2006/7/13 22:32:03

         在开发过程中,很容易遇到bootloader或kernel跑飞情况,有时候这样的bug很难抓,实在没有办法的时候,可以把指令执行的过程完全记录下来,这样便可以看到从什么地方开始出错,增加这个功能主要就是为了处理这样的情况.

          比如我可以指定从某个地址(或函数)开始记录指令,到某个地址(或函数)结束,以下就是记录从启动地址开始的10条指令

       1 0: PC 0xffffffffbfc00000:   beq      zero,zero,0xffffffffbfc005a0
       2 0: PC 0xffffffffbfc00004:   sll      zero,zero,#0
       3 0: PC 0xffffffffbfc005a0:   daddu    gp,zero,zero
       4 0: PC 0xffffffffbfc005a4:   lui      t9,#40896   
       5 0: PC 0xffffffffbfc005a8:   addiu    t9,t9,#7140
       6 0: PC 0xffffffffbfc005ac:   lui      AT,#40960
       7 0: PC 0xffffffffbfc005b0:   or       t9,t9,AT
       8 0: PC 0xffffffffbfc005b4:   jalr     ra,t9
       9 0: PC 0xffffffffbfc005b8:   sll      zero,zero,#0
       10 0: PC 0xffffffffbfc01be4:   mfc0     t0,15,#0   /* C0_PRID */

        这种功能对于异常处理,地址空间切换的调试非常有用.想想以前在开发mmu和内核空间切换到用户空间的时候遇到的bug,如果不是用这种土办法,还真是不好办呢.

        有机会的话,希望能把符号解析结合起来,这样易用性会更好一点.

posted @ 2011-04-05 13:46  konggang  阅读(156)  评论(0编辑  收藏  举报