Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Sep 2004 22:53:41 GMT
From:      Peter Wemm <peter@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 61460 for review
Message-ID:  <200409132253.i8DMrf8k091655@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=61460

Change 61460 by peter@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.
 	 */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200409132253.i8DMrf8k091655>