From owner-p4-projects@FreeBSD.ORG Fri May 30 13:30:15 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E1D9037B404; Fri, 30 May 2003 13:30:14 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 791F237B401 for ; Fri, 30 May 2003 13:30:14 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 21C3743F93 for ; Fri, 30 May 2003 13:30:14 -0700 (PDT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h4UKUD0U068754 for ; Fri, 30 May 2003 13:30:13 -0700 (PDT) (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4UKUDFZ068726 for perforce@freebsd.org; Fri, 30 May 2003 13:30:13 -0700 (PDT) Date: Fri, 30 May 2003 13:30:13 -0700 (PDT) Message-Id: <200305302030.h4UKUDFZ068726@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jmallett@freebsd.org using -f From: Juli Mallett To: Perforce Change Reviews Subject: PERFORCE change 32119 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 20:30:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=32119 Change 32119 by jmallett@jmallett_dalek on 2003/05/30 13:29:22 Enter DDB on breakpoint traps. This actually works. It also means we have to nest twice, for now. First the real problem, then panic("trap") then the debugger. This is enough to poke around a little. Affected files ... .. //depot/projects/mips/sys/mips/mips/trap.c#5 edit Differences ... ==== //depot/projects/mips/sys/mips/mips/trap.c#5 (text+ko) ==== @@ -25,6 +25,8 @@ * $FreeBSD$ */ +#include "opt_ddb.h" + #include #include #include @@ -98,6 +100,18 @@ printf("bad virtual address = %p\n", badvaddr); printf(" cause = %x\n", cause); printf(" status = %lx\n", tf->tf_regs[TF_SR]); + + switch (code) { + case T_BREAK: +#if DDB + kdb_trap(code, tf); + break; +#endif + default: + goto dopanic; + } + return; +dopanic: if (panicstr != NULL) { printf("Double panic, resetting...\n"); cpu_reset();