完善了反汇编功能
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,如果不是用这种土办法,还真是不好办呢.
有机会的话,希望能把符号解析结合起来,这样易用性会更好一点.