Fixed printing of registers in dbflalt_handler(). The registers

were always in a tss; that tss just changed from the one in the
pcb to common_tss (who knows where it was when there was no curpcb?).
Not using the pcb also fixed the problem that there is no pcb in
idle(), so we now always get useful register values.
This commit is contained in:
bde 1997-04-14 13:52:52 +00:00
parent 4dd7bf87eb
commit bb4f12b65c
3 changed files with 21 additions and 27 deletions

View File

@ -35,7 +35,7 @@
* SUCH DAMAGE.
*
* from: @(#)trap.c 7.4 (Berkeley) 5/13/91
* $Id: trap.c,v 1.90 1997/04/07 06:45:15 peter Exp $
* $Id: trap.c,v 1.91 1997/04/07 07:15:55 peter Exp $
*/
/*
@ -85,6 +85,8 @@
#include "isa.h"
#include "npx.h"
extern struct i386tss common_tss;
int (*pmath_emulate) __P((struct trapframe *));
extern void trap __P((struct trapframe frame));
@ -759,15 +761,11 @@ trap_fatal(frame)
void
dblfault_handler()
{
struct pcb *pcb = curpcb;
if (pcb != NULL) {
printf("\nFatal double fault:\n");
printf("eip = 0x%x\n", pcb->pcb_eip);
printf("esp = 0x%x\n", pcb->pcb_esp);
printf("ebp = 0x%x\n", pcb->pcb_ebp);
}
printf("\nFatal double fault:\n");
printf("eip = 0x%x\n", common_tss.tss_eip);
printf("esp = 0x%x\n", common_tss.tss_esp);
printf("ebp = 0x%x\n", common_tss.tss_ebp);
panic("double fault");
}

View File

@ -35,7 +35,7 @@
* SUCH DAMAGE.
*
* from: @(#)trap.c 7.4 (Berkeley) 5/13/91
* $Id: trap.c,v 1.90 1997/04/07 06:45:15 peter Exp $
* $Id: trap.c,v 1.91 1997/04/07 07:15:55 peter Exp $
*/
/*
@ -85,6 +85,8 @@
#include "isa.h"
#include "npx.h"
extern struct i386tss common_tss;
int (*pmath_emulate) __P((struct trapframe *));
extern void trap __P((struct trapframe frame));
@ -759,15 +761,11 @@ trap_fatal(frame)
void
dblfault_handler()
{
struct pcb *pcb = curpcb;
if (pcb != NULL) {
printf("\nFatal double fault:\n");
printf("eip = 0x%x\n", pcb->pcb_eip);
printf("esp = 0x%x\n", pcb->pcb_esp);
printf("ebp = 0x%x\n", pcb->pcb_ebp);
}
printf("\nFatal double fault:\n");
printf("eip = 0x%x\n", common_tss.tss_eip);
printf("esp = 0x%x\n", common_tss.tss_esp);
printf("ebp = 0x%x\n", common_tss.tss_ebp);
panic("double fault");
}

View File

@ -35,7 +35,7 @@
* SUCH DAMAGE.
*
* from: @(#)trap.c 7.4 (Berkeley) 5/13/91
* $Id: trap.c,v 1.90 1997/04/07 06:45:15 peter Exp $
* $Id: trap.c,v 1.91 1997/04/07 07:15:55 peter Exp $
*/
/*
@ -85,6 +85,8 @@
#include "isa.h"
#include "npx.h"
extern struct i386tss common_tss;
int (*pmath_emulate) __P((struct trapframe *));
extern void trap __P((struct trapframe frame));
@ -759,15 +761,11 @@ trap_fatal(frame)
void
dblfault_handler()
{
struct pcb *pcb = curpcb;
if (pcb != NULL) {
printf("\nFatal double fault:\n");
printf("eip = 0x%x\n", pcb->pcb_eip);
printf("esp = 0x%x\n", pcb->pcb_esp);
printf("ebp = 0x%x\n", pcb->pcb_ebp);
}
printf("\nFatal double fault:\n");
printf("eip = 0x%x\n", common_tss.tss_eip);
printf("esp = 0x%x\n", common_tss.tss_esp);
printf("ebp = 0x%x\n", common_tss.tss_ebp);
panic("double fault");
}