summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2007-12-25 17:52:02 +0000
committerrwatson <rwatson@FreeBSD.org>2007-12-25 17:52:02 +0000
commitbdee30611dab246a5227856892385a02c7352f12 (patch)
treeae45f86ab6fb75519ba2d9dbc206616dba84cc13 /sys/dev
parente3b63ab4174a215e3a606c591d7a3f41490e75e6 (diff)
downloadFreeBSD-src-bdee30611dab246a5227856892385a02c7352f12.zip
FreeBSD-src-bdee30611dab246a5227856892385a02c7352f12.tar.gz
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.
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/acpica/Osd/OsdDebug.c4
-rw-r--r--sys/dev/dcons/dcons_os.c6
-rw-r--r--sys/dev/ofw/ofw_console.c2
-rw-r--r--sys/dev/sio/sio.c6
-rw-r--r--sys/dev/syscons/syscons.c2
-rw-r--r--sys/dev/uart/uart_core.c5
6 files changed, 15 insertions, 10 deletions
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;
}
OpenPOWER on IntegriCloud