|
楼主 |
发表于 2008-6-19 03:33:08
|
显示全部楼层
下面是GDB的一个栈显示,可是我不明白怎么样找到导致错误的改写程序指令。lpc2210_io_write_word 的参数addr含有错误地址。
(gdb) bt
#0 lpc2210_io_write_word (state=0x9d96458, addr=4294963202, data=76)
at mach/skyeye_mach_lpc2210.c:604
#1 0x08055560 in a71_mmu_write (state=0x9d96458, virt_addr=4294963202, data=76,
datatype=0) at common/mmu/arm7100_mmu.c:242
#2 0x08054a86 in PutByte (state=0x9d96458, address=4294963202, data=76)
at common/armvirt.c:157
#3 0x08054b44 in ARMul_ICE_WriteByte (state=0x9d96458, address=4294963202, data=76)
at common/armvirt.c:647
#4 0x080500e2 in arm_ICE_write_byte (addr=4294963202, v=76 'L')
at common/arm_arch_interface.c:110
#5 0x08049b0f in tea_load_exec (file=<value optimized out>,
only_check_big_endian=<value optimized out>) at utils/main/skyeye.c:235
#6 0x0804a003 in main (argc=3, argv=0xbf9f9b44) at utils/main/skyeye.c:718
(gdb) p /x addr
$1 = 0xfffff002
再有,SKYEYE会让地址递增从0xfffff001到0xffffffff。然后给出如下信息:
......
ERROR:io_write a non-exsiting addr:addr = fffffffe, data = 0
SKYEYE:NumInstrs 0, mem_write_byte addr = ffffffff no bank
估计NumInstrs 0 是导致日志文件尺寸为零的原因。
[ 本帖最后由 bitcalc 于 2008-6-19 03:40 编辑 ] |
|