PERFORCE change 61460 for review
Peter Wemm
peter at FreeBSD.org
Mon Sep 13 15:53:42 PDT 2004
http://perforce.freebsd.org/chv.cgi?CH=61460
Change 61460 by peter at peter_daintree on 2004/09/13 22:53:08
Hmm. jhb's doublefault tracer wont work in this form. On amd64,
we dont save the old register values. Note an XXX about a MIA ist
setup for the doublefault.
Affected files ...
.. //depot/projects/hammer/sys/amd64/amd64/db_trace.c#20 edit
Differences ...
==== //depot/projects/hammer/sys/amd64/amd64/db_trace.c#20 (text+ko) ====
@@ -190,7 +190,6 @@
#define TRAP 1
#define INTERRUPT 2
#define SYSCALL 3
-#define DOUBLE_FAULT 4
static void db_nextframe(struct amd64_frame **, db_addr_t *, struct thread *);
static int db_numargs(struct amd64_frame *);
@@ -318,8 +317,6 @@
frame_type = INTERRUPT;
else if (strcmp(name, "Xfast_syscall") == 0)
frame_type = SYSCALL;
- else if (strcmp(name, "dblfault_handler") == 0)
- frame_type = DOUBLE_FAULT;
}
/*
@@ -334,23 +331,6 @@
db_print_stack_entry(name, 0, 0, 0, rip);
/*
- * For a double fault, we have to snag the values from the
- * previous TSS since a double fault uses a task gate to
- * switch to a known good state.
- */
- if (frame_type == DOUBLE_FAULT) {
- esp = PCPU_GET(common_tss.tss_esp);
- eip = PCPU_GET(common_tss.tss_eip);
- ebp = PCPU_GET(common_tss.tss_ebp);
- db_printf(
- "--- trap 0x17, eip = %#r, esp = %#r, ebp = %#r ---\n",
- eip, esp, ebp);
- *ip = (db_addr_t) eip;
- *fp = (struct i386_frame *) ebp;
- return;
- }
-
- /*
* Point to base of trapframe which is just above the
* current frame.
*/
More information about the p4-projects
mailing list