From bdee30611dab246a5227856892385a02c7352f12 Mon Sep 17 00:00:00 2001 From: rwatson Date: Tue, 25 Dec 2007 17:52:02 +0000 Subject: Add a new 'why' argument to kdb_enter(), and a set of constants to use for that argument. This will allow DDB to detect the broad category of reason why the debugger has been entered, which it can use for the purposes of deciding which DDB script to run. Assign approximate why values to all current consumers of the kdb_enter() interface. --- sys/dev/acpica/Osd/OsdDebug.c | 4 ++-- sys/dev/dcons/dcons_os.c | 6 ++++-- sys/dev/ofw/ofw_console.c | 2 +- sys/dev/sio/sio.c | 6 ++++-- sys/dev/syscons/syscons.c | 2 +- sys/dev/uart/uart_core.c | 5 +++-- 6 files changed, 15 insertions(+), 10 deletions(-) (limited to 'sys/dev') diff --git a/sys/dev/acpica/Osd/OsdDebug.c b/sys/dev/acpica/Osd/OsdDebug.c index b127181..27b94a0 100644 --- a/sys/dev/acpica/Osd/OsdDebug.c +++ b/sys/dev/acpica/Osd/OsdDebug.c @@ -73,13 +73,13 @@ AcpiOsSignal(UINT32 Function, void *Info) printf("ACPI fatal signal, type 0x%x code 0x%x argument 0x%x", fatal->Type, fatal->Code, fatal->Argument); #ifdef ACPI_DEBUG - kdb_enter("AcpiOsSignal"); + kdb_enter(KDB_WHY_ACPI, "AcpiOsSignal"); #endif break; case ACPI_SIGNAL_BREAKPOINT: #ifdef ACPI_DEBUG - kdb_enter((char *)Info); + kdb_enter(KDB_WHY_ACPI, (char *)Info); #endif break; diff --git a/sys/dev/dcons/dcons_os.c b/sys/dev/dcons/dcons_os.c index d47515c..7eb89aa 100644 --- a/sys/dev/dcons/dcons_os.c +++ b/sys/dev/dcons/dcons_os.c @@ -207,11 +207,13 @@ dcons_check_break(struct dcons_softc *dc, int c) #ifdef GDB if (gdb_cur == &dcons_gdb_dbgport) { kdb_dbbe_select("gdb"); - kdb_enter("Break sequence on dcons gdb port"); + kdb_enter(KDB_WHY_BREAK, + "Break sequence on dcons gdb port"); } #endif } else - kdb_enter("Break sequence on dcons console port"); + kdb_enter(KDB_WHY_BREAK, + "Break sequence on dcons console port"); } #else switch (dc->brk_state) { diff --git a/sys/dev/ofw/ofw_console.c b/sys/dev/ofw/ofw_console.c index 0d1133f..7d6f5eb 100644 --- a/sys/dev/ofw/ofw_console.c +++ b/sys/dev/ofw/ofw_console.c @@ -282,7 +282,7 @@ ofw_cngetc(struct consdev *cp) if (OF_read(stdin, &ch, 1) > 0) { #if defined(KDB) && defined(ALT_BREAK_TO_DEBUGGER) if (kdb_alt_break(ch, &alt_break_state)) - kdb_enter("Break sequence on console"); + kdb_enter(KDB_WHY_BREAK, "Break sequence on console"); #endif return (ch); } diff --git a/sys/dev/sio/sio.c b/sys/dev/sio/sio.c index 3db7f59..a62b411 100644 --- a/sys/dev/sio/sio.c +++ b/sys/dev/sio/sio.c @@ -1502,7 +1502,8 @@ siointr1(com) #ifdef ALT_BREAK_TO_DEBUGGER if (com->unit == comconsole && kdb_alt_break(recv_data, &com->alt_brk_state) != 0) - kdb_enter("Break sequence on console"); + kdb_enter(KDB_WHY_BREAK, + "Break sequence on console"); #endif /* ALT_BREAK_TO_DEBUGGER */ #endif /* KDB */ if (line_status & (LSR_BI | LSR_FE | LSR_PE)) { @@ -1521,7 +1522,8 @@ siointr1(com) if (line_status & LSR_BI) { #if defined(KDB) && defined(BREAK_TO_DEBUGGER) if (com->unit == comconsole) { - kdb_enter("Line break on console"); + kdb_enter(KDB_WHY_BREAK, + "Line break on console"); goto cont; } #endif diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c index 04ad041..b749895 100644 --- a/sys/dev/syscons/syscons.c +++ b/sys/dev/syscons/syscons.c @@ -3373,7 +3373,7 @@ next_code: case DBG: #ifndef SC_DISABLE_KDBKEY if (enable_kdbkey) - kdb_enter("manual escape to debugger"); + kdb_enter(KDB_WHY_BREAK, "manual escape to debugger"); #endif break; diff --git a/sys/dev/uart/uart_core.c b/sys/dev/uart/uart_core.c index f991278..b4730418 100644 --- a/sys/dev/uart/uart_core.c +++ b/sys/dev/uart/uart_core.c @@ -122,7 +122,7 @@ uart_intr_break(void *arg) #if defined(KDB) && defined(BREAK_TO_DEBUGGER) if (sc->sc_sysdev != NULL && sc->sc_sysdev->type == UART_DEV_CONSOLE) { - kdb_enter("Line break on console"); + kdb_enter(KDB_WHY_BREAK, "Line break on console"); return (0); } #endif @@ -176,7 +176,8 @@ uart_intr_rxready(void *arg) if (sc->sc_sysdev != NULL && sc->sc_sysdev->type == UART_DEV_CONSOLE) { while (rxp != sc->sc_rxput) { if (kdb_alt_break(sc->sc_rxbuf[rxp++], &sc->sc_altbrk)) - kdb_enter("Break sequence on console"); + kdb_enter(KDB_WHY_BREAK, + "Break sequence on console"); if (rxp == sc->sc_rxbufsz) rxp = 0; } -- cgit v1.1