From owner-p4-projects@FreeBSD.ORG Sat Mar 20 11:06:48 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6250B16A4E8; Sat, 20 Mar 2004 11:06:48 -0800 (PST) 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 9F5C616A52F for ; Sat, 20 Mar 2004 11:06:47 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 80A1043D1D for ; Sat, 20 Mar 2004 11:06:47 -0800 (PST) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i2KJ6lGe002112 for ; Sat, 20 Mar 2004 11:06:47 -0800 (PST) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i2KJ6l2E002109 for perforce@freebsd.org; Sat, 20 Mar 2004 11:06:47 -0800 (PST) (envelope-from marcel@freebsd.org) Date: Sat, 20 Mar 2004 11:06:47 -0800 (PST) Message-Id: <200403201906.i2KJ6l2E002109@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 49382 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: Sat, 20 Mar 2004 19:06:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=49382 Change 49382 by marcel@marcel_nfs on 2004/03/20 11:05:48 Desupport dbbe_enter(). All debugger entries happen through dbbe_trap(). That way we can deal with SMP in a single place. I think I added dbbe_enter() as a way to avoid the trap, but the backend has to construct a context (i.e. a trapframe) manually in that case. That's just stupid... Affected files ... .. //depot/projects/gdb/sys/gdb/gdb_main.c#6 edit .. //depot/projects/gdb/sys/kern/subr_kdb.c#5 edit .. //depot/projects/gdb/sys/sys/kdb.h#4 edit Differences ... ==== //depot/projects/gdb/sys/gdb/gdb_main.c#6 (text+ko) ==== @@ -43,7 +43,7 @@ static dbbe_init_f gdb_init; static dbbe_trap_f gdb_trap; -KDB_BACKEND(gdb, gdb_init, NULL, NULL, gdb_trap); +KDB_BACKEND(gdb, gdb_init, NULL, gdb_trap); GDB_DBGPORT(null, NULL, NULL, NULL, NULL, NULL, NULL); SET_DECLARE(gdb_dbgport_set, struct gdb_dbgport); ==== //depot/projects/gdb/sys/kern/subr_kdb.c#5 (text+ko) ==== @@ -35,7 +35,7 @@ int kdb_active = 0; struct kdb_dbbe *kdb_cur = NULL; -KDB_BACKEND(null, NULL, NULL, NULL, NULL); +KDB_BACKEND(null, NULL, NULL, NULL); SET_DECLARE(kdb_dbbe_set, struct kdb_dbbe); /* @@ -108,12 +108,7 @@ if (kdb_cur != NULL) { if (msg != NULL) printf("KDB: enter: %s\n", msg); - if (kdb_cur->dbbe_enter != NULL) { - kdb_active = 1; - kdb_cur->dbbe_enter(); - kdb_active = 0; - } else - breakpoint(); + breakpoint(); } } ==== //depot/projects/gdb/sys/sys/kdb.h#4 (text+ko) ==== @@ -31,24 +31,21 @@ struct trapframe; -typedef void dbbe_enter_f(void); typedef int dbbe_init_f(void); typedef void dbbe_trace_f(void); typedef int dbbe_trap_f(int, int, struct trapframe *); struct kdb_dbbe { const char *dbbe_name; - dbbe_enter_f *dbbe_enter; dbbe_init_f *dbbe_init; dbbe_trace_f *dbbe_trace; dbbe_trap_f *dbbe_trap; int dbbe_active; }; -#define KDB_BACKEND(name, init, trace, enter, trap) \ +#define KDB_BACKEND(name, init, trace, trap) \ static struct kdb_dbbe name##_dbbe = { \ .dbbe_name = #name, \ - .dbbe_enter = enter, \ .dbbe_init = init, \ .dbbe_trace = trace, \ .dbbe_trap = trap \