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>