From: Dave A. <ai...@us...> - 2001-11-04 21:58:37
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory usw-pr-cvs1:/tmp/cvs-serv29714 Modified Files: ptrace.c Log Message: DA: better ptrace for finding PC .. needs more explains Index: ptrace.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/ptrace.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ptrace.c 2001/10/28 23:54:18 1.1 +++ ptrace.c 2001/11/04 21:58:32 1.2 @@ -8,6 +8,7 @@ * Copyright (C) Linus Torvalds * Copyright (C) 1994, 1995, 1996, 1997, 1998 Ralf Baechle * Copyright (C) 1996 David S. Miller + * Copyright (C) 2001 David Airlie, VAX Porting Project */ #include <linux/kernel.h> #include <linux/sched.h> @@ -63,9 +64,18 @@ break; case PT_SP: retval = child->thread.pcb.usp; + break; case PT_PC: - retval = child->thread.pcb.pc; + { + int i; + struct pt_regs regs; + + // hex_dump((void *)(child->thread.pcb.ksp-0x80), 256); + // printk("ksp:%8lX ap:%8lX fp:%8lX\n", child->thread.pcb.ksp, child->thread.pcb.ap, child->thread.pcb.ksp+0x64); + /* FIXME: explain 0x64 == 100 = 25 * 4 pc is stored 25 longs into stack.... */ + retval = (unsigned long)*(unsigned long *)(child->thread.pcb.ksp + 0x64); break; + } default: printk("getreg for %d failed\n", regno); retval=0; |