[Kgdb-bugreport] Problem of KGDB Implementation on PowerPC405 Board
Status: Beta
Brought to you by:
jwessel
From: Zhou R. <van...@ya...> - 2007-04-20 03:45:17
|
Hi, all I'm using ELDK4.1 for development on PowerPC405EP board, which is PPChameleonEVB. For kernel 2.6.19.2 provided with ELDK4.1, it seems no appropriate KGDB patch from http://kgdb.linsyssoft.com/ for this version of kernel. So I use the option: Kernel hacking ---> [*] Include kgdb kernel debugger Serial Port (ttyS0) ---> While I'm using GDB to debug, I always got error message "Can't send signals to this remote system. SIGILL not sent." as below. So is there any advice to solve this problem? root@laz:/eldk41/ppc_4xx/usr/src/linux# ppc_4xx-gdb vmlinux GNU gdb Red Hat Linux (6.3.0.0-1.21_3rh) Copyright 2004 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 GDB was configured as "--host=i386-redhat-linux --target=ppc-linux". The target architecture is set automatically (currently powerpc:403) .. (gdb) shell echo -e "\003" > /dev/ttyS0 (gdb) set remotebaud 115200 (gdb) target remote /dev/ttyS0 Remote debugging using /dev/ttyS0 breakinst () at arch/ppc/kernel/ppc-stub.c:825 825 } (gdb) set logging on Copying output to gdb.txt. (gdb) l 820 return; 821 } 822 823 asm(" .globl breakinst \n\ 824 breakinst: .long 0x7d821008"); 825 } 826 827 #ifdef CONFIG_KGDB_CONSOLE 828 /* Output string in GDB O-packet format if GDB has connected. If nothing 829 output, returns 0 (caller must then handle output). */ (gdb) break schedule Breakpoint 1 at 0xc01a90a8: file kernel/sched.c, line 2960. (gdb) c Continuing. (gdb) c Continuing. Can't send signals to this remote system. SIGILL not sent. Breakpoint 1, schedule () at kernel/sched.c:2960 2960 if (likely(!current->exit_state)) { (gdb) l 2955 /* 2956 * Test if we are atomic. Since do_exit() needs to call into 2957 * schedule() atomically, we ignore that path for now. 2958 * Otherwise, whine if we are scheduling when we should not be. 2959 */ 2960 if (likely(!current->exit_state)) { 2961 if (unlikely(in_atomic())) { 2962 printk(KERN_ERR "scheduling while atomic: " 2963 "%s/0x%08x/%d\n", 2964 current->comm, preempt_count(), current->pid); I also have tried to patch KGDB 2.4 for 2.6.15.5 kernel on 2.6.15 provided with ELDK4.0. The patching procedure seems okay, but when I compile for PowerPC405 and 440 board, it always fails like this: For 405: CC arch/ppc/syslib/gen550_dbg.o LD arch/ppc/syslib/built-in.o AS arch/powerpc/sysdev/dcr.o LD arch/powerpc/sysdev/built-in.o CC arch/powerpc/lib/bitops.o LD arch/powerpc/lib/built-in.o CC arch/ppc/platforms/4xx/ppchameleon.o arch/ppc/platforms/4xx/ppchameleon.c: In function 'platform_init': arch/ppc/platforms/4xx/ppchameleon.c:252: error: 'struct machdep_calls' has no member named 'early_serial_map' make[1]: *** [arch/ppc/platforms/4xx/ppchameleon.o] Error 1 make: *** [arch/ppc/platforms/4xx] Error 2 For 440: LD arch/ppc/syslib/built-in.o CC arch/powerpc/sysdev/indirect_pci.o AS arch/powerpc/sysdev/dcr.o LD arch/powerpc/sysdev/built-in.o CC arch/powerpc/lib/bitops.o LD arch/powerpc/lib/built-in.o CC arch/ppc/platforms/4xx/yosemite.o arch/ppc/platforms/4xx/yosemite.c: In function 'yosemite_early_serial_map': arch/ppc/platforms/4xx/yosemite.c:288: warning: implicit declaration of function 'gen550_init' arch/ppc/platforms/4xx/yosemite.c: In function 'platform_init': arch/ppc/platforms/4xx/yosemite.c:349: error: 'struct machdep_calls' has no member named 'early_serial_map' make[1]: *** [arch/ppc/platforms/4xx/yosemite.o] Error 1 make: *** [arch/ppc/platforms/4xx] Error 2 Would anyone like to give me some informaiton to solve this error? Thanks a lot. Best wishes Zhou Rui Distributed and Embedded System Lab Room 532, Information Building School of Information Science --------------------------------- 抢注雅虎免费邮箱-3.5G容量,20M附件! |