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;
|