skyeye lubbock仿真无法设置断点
我用skyeye 仿真lubbock,但是无法设置断点调试skyeye.conf 如下
cpu: xscale
mach: pxa_lubbock
mem_bank: map=I, type=RW, addr=0x40000000, size=0x0c000000
mem_bank: map=M, type=RW, addr=0xa0000000, size=0x00200000
mem_bank: map=M, type=RW, addr=0xa0200000, size=0x00100000, file=zImage, boot=yes
mem_bank: map=M, type=RW, addr=0xa0300000, size=0x00d00000
mem_bank: map=M, type=RW, addr=0xa1000000, size=0x00800000, file=./initrd4M.img
mem_bank: map=M, type=RW, addr=0xa1800000, size=0x02800000
运行skyeye
***************************************************************
**** ****
**** SkyEyeSimulator Ver 0.8.6 withGDB 5.3 Interface ****
**** ****
***************************************************************
GNU gdb 5.3
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.Type "show warranty" for details.
This SkyEye was configured as "--host=i686-pc-linux-gnu --target=arm-elf".
(SkyEye) target sim
cpu info: xscale, xscale, 69052100, fffffff0, 2
mach info: name pxa_lubbock, mach_init addr 0x815ba00
SKYEYE: use xscale mmu ops
Loaded ROM zImage
Loaded ROM ./initrd4M.img
Connected to the simulator.
(SkyEye) symbol-file vmlinux
Reading symbols from lvmlinux...done.
(SkyEye) b setup_arch
Breakpoint 1 at 0xc000ed4c: file arch/arm/kernel/setup.c, line 277.
(SkyEye) run
Starting program:
warning: No executable file specified.
warning: No program loaded.
No program loaded.
(SkyEye) del 1
(SkyEye) c
Continuing.
Uncompressing Linux.... 经调试发现仿真lubbock的linux设置断点需要将vmlinux转成bin格式加载
同时还需要load vmlinux。
设置断点时也很奇怪,需要同时设置两个断点才会中断。
(SkyEye) inf breakpoints
Num Type Disp Enb Address What
1 breakpoint keep y 0xc0008658 in start_kernel at init/main.c:499
2 breakpoint keep y 0xa0008658
^^^^^^^^这个断点是上一个断点的实地址
(SkyEye) r
Starting program: /home/znanth/course/xscale-dev/skyeyetest/vmlinux
Breakpoint 1, start_kernel () at init/main.c:499
如果只设置断点1skyeye不会产生中断
而如果只设断点2会产生中断,但是却无法继续运行。
当设置了两个中断时,应该是中断2使skyeye停下来,但是实际上察看中断信息却是breakpoint1 hit 1次
(SkyEye) info breakpoints
Num Type Disp Enb Address What
1 breakpoint keep y 0xc0008658 in start_kernel at init/main.c:499
breakpoint already hit 1 time
2 breakpoint keep y 0xa0008658
因此怀疑skeye在中断处理时没有根据mmu的情况处理虚地址与实地址的转换。 谁能解决?悬赏!
页:
[1]