PERFORCE change 56539 for review

Marcel Moolenaar marcel at FreeBSD.org
Mon Jul 5 14:03:21 PDT 2004


http://perforce.freebsd.org/chv.cgi?CH=56539

Change 56539 by marcel at marcel_nfs on 2004/07/05 21:03:10

	Add makectx(struct trapframe *, struct pcb *) and call it
	from kdb_trap() to create a suitable context from the frame.
	
	With this function the thread that entered the debugger will
	have the faulting function as the context. This is better
	than calling savectx() in kdb_trap.
	
	This should be the last of work required to have the debugger
	framework operate on the PCB instead of the trapframe.
	
	Since I haven't implemented this function anywhere, nothing
	links ATM. It may be the last, it's surely not the least...

Affected files ...

.. //depot/projects/gdb/sys/alpha/include/pcb.h#2 edit
.. //depot/projects/gdb/sys/amd64/include/pcb.h#5 edit
.. //depot/projects/gdb/sys/i386/include/pcb.h#3 edit
.. //depot/projects/gdb/sys/ia64/include/pcb.h#2 edit
.. //depot/projects/gdb/sys/kern/subr_kdb.c#16 edit
.. //depot/projects/gdb/sys/sparc64/include/pcb.h#2 edit

Differences ...

==== //depot/projects/gdb/sys/alpha/include/pcb.h#2 (text+ko) ====

@@ -58,6 +58,7 @@
 };
 
 #ifdef _KERNEL
+void	makectx(struct trapframe *, struct pcb *);
 void	savectx(struct pcb *);
 #endif
 

==== //depot/projects/gdb/sys/amd64/include/pcb.h#5 (text+ko) ====

@@ -78,6 +78,9 @@
 };
 
 #ifdef _KERNEL
+struct trapframe;
+
+void	makectx(struct trapframe *, struct pcb *);
 void	savectx(struct pcb *);
 #endif
 

==== //depot/projects/gdb/sys/i386/include/pcb.h#3 (text+ko) ====

@@ -74,6 +74,9 @@
 };
 
 #ifdef _KERNEL
+struct trapframe;
+
+void	makectx(struct trapframe *, struct pcb *);
 void	savectx(struct pcb *);
 #endif
 

==== //depot/projects/gdb/sys/ia64/include/pcb.h#2 (text+ko) ====

@@ -59,6 +59,10 @@
 #ifdef _KERNEL
 
 #define	savectx(p)	swapctx(p, NULL)
+
+struct trapframe;
+
+void makectx(struct trapframe *, struct pcb *);
 void restorectx(struct pcb *) __dead2;
 int swapctx(struct pcb *old, struct pcb *new);
 

==== //depot/projects/gdb/sys/kern/subr_kdb.c#16 (text+ko) ====

@@ -355,7 +355,7 @@
 	if (kdb_active)
 		return (0);
 
-	savectx(&kdb_pcb);
+	makectx(tf, &kdb_pcb);
 
 	critical_enter();
 

==== //depot/projects/gdb/sys/sparc64/include/pcb.h#2 (text+ko) ====

@@ -49,6 +49,7 @@
 } __aligned(64);
 
 #ifdef _KERNEL
+void	makectx(struct trapframe *, struct pcb *);
 int	savectx(struct pcb *pcb);
 #endif
 


More information about the p4-projects mailing list