From 1e5fb84ba64a6289b22b4f06c52dad808b061c6d Mon Sep 17 00:00:00 2001 From: Aggelos Economopoulos Date: Fri, 6 Feb 2009 00:27:34 +0200 Subject: [PATCH] kill db_print_backtrace() Use print_backtrace() which is always available. Remove a bunch of #ifdef DDB and #include lines. --- sys/ddb/ddb.h | 5 ----- sys/dev/acpica5/Osd/OsdSynch.c | 7 ++----- sys/kern/kern_debug.c | 10 +++------- sys/kern/kern_shutdown.c | 5 ++--- sys/kern/kern_spinlock.c | 11 ++++------- sys/kern/kern_timeout.c | 11 ++--------- sys/kern/lwkt_thread.c | 8 +------- sys/kern/uipc_mbuf.c | 7 +------ sys/net/route.c | 4 ++-- sys/netinet/ip_output.c | 2 +- sys/platform/pc32/i386/db_trace.c | 2 +- sys/platform/pc32/i386/pmap.c | 18 ++++-------------- sys/platform/pc64/amd64/db_trace.c | 2 +- sys/platform/pc64/amd64/pmap.c | 18 ++++-------------- sys/platform/vkernel/i386/db_trace.c | 2 +- sys/sys/systm.h | 2 +- sys/vm/vm_vmspace.c | 6 +----- 17 files changed, 31 insertions(+), 89 deletions(-) diff --git a/sys/ddb/ddb.h b/sys/ddb/ddb.h index 7b7063e799..fbd9630e9f 100644 --- a/sys/ddb/ddb.h +++ b/sys/ddb/ddb.h @@ -144,11 +144,6 @@ db_cmdfcn_t ipc_port_print; db_cmdfcn_t vm_page_print; #endif -/* - * Print backtrace. (Machine-Dependant) - */ -void db_print_backtrace(void); - /* * Command table. */ diff --git a/sys/dev/acpica5/Osd/OsdSynch.c b/sys/dev/acpica5/Osd/OsdSynch.c index c307be940d..39c93004af 100644 --- a/sys/dev/acpica5/Osd/OsdSynch.c +++ b/sys/dev/acpica5/Osd/OsdSynch.c @@ -355,9 +355,6 @@ AcpiOsDeleteLock (ACPI_SPINLOCK Spin) kfree(Spin, M_ACPISEM); } -#ifdef ACPI_DEBUG_LOCKS -void db_print_backtrace(void); -#endif /* * OS-dependent locking primitives. These routines should be able to be * called from an interrupt-handler or cpu_idle thread. @@ -379,7 +376,7 @@ AcpiOsAcquireLock (ACPI_SPINLOCK Spin) kprintf("%p(%s:%d): acpi_spinlock %p already held by %p(%s:%d)\n", curthread, func, line, Spin, Spin->owner, Spin->func, Spin->line); - db_print_backtrace(); + print_backtrace(); } else { Spin->owner = curthread; Spin->func = func; @@ -397,7 +394,7 @@ AcpiOsReleaseLock (ACPI_SPINLOCK Spin, UINT32 Flags) if (Spin->owner != NULL) { kprintf("%p: acpi_spinlock %p is unexectedly held by %p(%s:%d)\n", curthread, Spin, Spin->owner, Spin->func, Spin->line); - db_print_backtrace(); + print_backtrace(); } else return; } diff --git a/sys/kern/kern_debug.c b/sys/kern/kern_debug.c index 18be47992c..bb6115fdcf 100644 --- a/sys/kern/kern_debug.c +++ b/sys/kern/kern_debug.c @@ -80,15 +80,11 @@ /* * Simple DDB stack trace funtionality. */ +#ifndef DDB void -backtrace(void) +print_backtrace(void) { - -#ifdef DDB - kprintf("Stack backtrace:\n"); - db_print_backtrace(); -#else kprintf("Cannot print stack trace.\n"); kprintf("DDB kernel option is needed.\n"); -#endif } +#endif diff --git a/sys/kern/kern_shutdown.c b/sys/kern/kern_shutdown.c index 015c8e19e8..2e87eb7b13 100644 --- a/sys/kern/kern_shutdown.c +++ b/sys/kern/kern_shutdown.c @@ -96,6 +96,7 @@ #include #ifdef DDB +#include #ifdef DDB_UNATTENDED int debugger_on_panic = 0; #else @@ -104,8 +105,6 @@ int debugger_on_panic = 1; SYSCTL_INT(_debug, OID_AUTO, debugger_on_panic, CTLFLAG_RW, &debugger_on_panic, 0, "Run debugger on kernel panic"); -extern void db_print_backtrace(void); - #ifdef DDB_TRACE int trace_on_panic = 1; #else @@ -794,7 +793,7 @@ panic(const char *fmt, ...) #if defined(DDB) if (newpanic && trace_on_panic) - db_print_backtrace(); + print_backtrace(); if (debugger_on_panic) Debugger("panic"); #endif diff --git a/sys/kern/kern_spinlock.c b/sys/kern/kern_spinlock.c index d1f31b88fc..11026bff2a 100644 --- a/sys/kern/kern_spinlock.c +++ b/sys/kern/kern_spinlock.c @@ -32,8 +32,6 @@ * $DragonFly: src/sys/kern/kern_spinlock.c,v 1.16 2008/09/11 01:11:42 y0netan1 Exp $ */ -#include "opt_ddb.h" - #include #include #include @@ -43,7 +41,6 @@ #include #endif #include -#include #include #include #include @@ -307,16 +304,16 @@ exponential_backoff(struct exponential_backoff *bo) kprintf("spin_lock: %p, indefinite wait!\n", bo->mtx); if (panicstr) return (TRUE); -#if defined(INVARIANTS) && defined(DDB) +#if defined(INVARIANTS) if (spin_lock_test_mode) { - db_print_backtrace(); + print_backtrace(); return (TRUE); } #endif ++bo->nsec; -#if defined(INVARIANTS) && defined(DDB) +#if defined(INVARIANTS) if (bo->nsec == 11) - db_print_backtrace(); + print_backtrace(); #endif if (bo->nsec == 60) panic("spin_lock: %p, indefinite wait!\n", bo->mtx); diff --git a/sys/kern/kern_timeout.c b/sys/kern/kern_timeout.c index 5f833d253a..91ebfae488 100644 --- a/sys/kern/kern_timeout.c +++ b/sys/kern/kern_timeout.c @@ -99,8 +99,6 @@ * The per-cpu augmentation was done by Matthew Dillon. */ -#include "opt_ddb.h" - #include #include #include @@ -108,7 +106,6 @@ #include #include #include -#include #ifndef MAX_SOFTCLOCK_STEPS #define MAX_SOFTCLOCK_STEPS 100 /* Maximum allowed value of steps. */ @@ -360,9 +357,7 @@ callout_reset(struct callout *c, int to_ticks, void (*ftn)(void *), kprintf( "callout_reset(%p) from %p: callout was not initialized\n", c, ((int **)&c)[-1]); -#ifdef DDB - db_print_backtrace(); -#endif + print_backtrace(); } #endif gd = mycpu; @@ -415,9 +410,7 @@ callout_stop(struct callout *c) kprintf( "callout_stop(%p) from %p: callout was not initialized\n", c, ((int **)&c)[-1]); -#ifdef DDB - db_print_backtrace(); -#endif + print_backtrace(); } #endif crit_enter_gd(gd); diff --git a/sys/kern/lwkt_thread.c b/sys/kern/lwkt_thread.c index a1ce259196..dde44a908e 100644 --- a/sys/kern/lwkt_thread.c +++ b/sys/kern/lwkt_thread.c @@ -40,7 +40,6 @@ * to use a critical section to avoid problems. Foreign thread * scheduling is queued via (async) IPIs. */ -#include "opt_ddb.h" #include #include @@ -71,9 +70,6 @@ #include #include -#ifdef DDB -#include -#endif static MALLOC_DEFINE(M_THREAD, "thread", "lwkt threads"); @@ -501,9 +497,7 @@ lwkt_switch(void) td->td_flags |= TDF_PANICWARN; kprintf("Warning: thread switch from interrupt or IPI, " "thread %p (%s)\n", td, td->td_comm); -#ifdef DDB - db_print_backtrace(); -#endif + print_backtrace(); } lwkt_switch(); gd->gd_intr_nesting_level = savegdnest; diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c index 560f01c618..02129a69ff 100644 --- a/sys/kern/uipc_mbuf.c +++ b/sys/kern/uipc_mbuf.c @@ -69,7 +69,6 @@ */ #include "opt_param.h" -#include "opt_ddb.h" #include "opt_mbuf_stress_test.h" #include #include @@ -890,8 +889,6 @@ m_mclfree(void *arg) objcache_put(mclmeta_cache, mcl); } -extern void db_print_backtrace(void); - /* * Free a single mbuf and any associated external storage. The successor, * if any, is returned. @@ -921,14 +918,12 @@ m_free(struct mbuf *m) KKASSERT(m->m_nextpkt == NULL); #else if (m->m_nextpkt != NULL) { -#ifdef DDB static int afewtimes = 10; if (afewtimes-- > 0) { kprintf("mfree: m->m_nextpkt != NULL\n"); - db_print_backtrace(); + print_backtrace(); } -#endif m->m_nextpkt = NULL; } #endif diff --git a/sys/net/route.c b/sys/net/route.c index f03c68c0e8..76fd5ff6b6 100644 --- a/sys/net/route.c +++ b/sys/net/route.c @@ -380,7 +380,7 @@ rtfree_remote(struct rtentry *rt, int allow_panic) } else { kprintf("rt remote free rt_cpuid %d, mycpuid %d\n", rt->rt_cpuid, mycpuid); - backtrace(); + print_backtrace(); } netmsg_init(&nmsg, &curthread->td_msgport, 0, rtfree_remote_dispatch); @@ -1391,7 +1391,7 @@ rt_addrinfo_print(int cmd, struct rt_addrinfo *rti) #ifdef ROUTE_DEBUG if (cmd == RTM_DELETE && route_debug > 1) - backtrace(); + print_backtrace(); #endif switch(cmd) { diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c index b8b82e21d6..9004ec9f7e 100644 --- a/sys/netinet/ip_output.c +++ b/sys/netinet/ip_output.c @@ -227,7 +227,7 @@ ip_output(struct mbuf *m0, struct mbuf *opt, struct route *ro, kprintf("ip_output: " "rt rt_cpuid %d accessed on cpu %d\n", ro->ro_rt->rt_cpuid, mycpuid); - backtrace(); + print_backtrace(); } } diff --git a/sys/platform/pc32/i386/db_trace.c b/sys/platform/pc32/i386/db_trace.c index f1ed532cf5..7f5c3675be 100644 --- a/sys/platform/pc32/i386/db_trace.c +++ b/sys/platform/pc32/i386/db_trace.c @@ -435,7 +435,7 @@ db_stack_trace_cmd(db_expr_t addr, boolean_t have_addr, db_expr_t count, } void -db_print_backtrace(void) +print_backtrace(void) { register_t ebp; diff --git a/sys/platform/pc32/i386/pmap.c b/sys/platform/pc32/i386/pmap.c index 2102002675..11d8f3b4dd 100644 --- a/sys/platform/pc32/i386/pmap.c +++ b/sys/platform/pc32/i386/pmap.c @@ -107,8 +107,6 @@ #include #include -#include - #define PMAP_KEEP_PDIRS #ifndef PMAP_SHPGPERPROC #define PMAP_SHPGPERPROC 200 @@ -1964,15 +1962,11 @@ pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, #endif if (va < UPT_MAX_ADDRESS && pmap == &kernel_pmap) { kprintf("Warning: pmap_enter called on UVA with kernel_pmap\n"); -#ifdef DDB - db_print_backtrace(); -#endif + print_backtrace(); } if (va >= UPT_MAX_ADDRESS && pmap != &kernel_pmap) { kprintf("Warning: pmap_enter called on KVA without kernel_pmap\n"); -#ifdef DDB - db_print_backtrace(); -#endif + print_backtrace(); } /* @@ -2127,15 +2121,11 @@ pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m) if (va < UPT_MAX_ADDRESS && pmap == &kernel_pmap) { kprintf("Warning: pmap_enter_quick called on UVA with kernel_pmap\n"); -#ifdef DDB - db_print_backtrace(); -#endif + print_backtrace(); } if (va >= UPT_MAX_ADDRESS && pmap != &kernel_pmap) { kprintf("Warning: pmap_enter_quick called on KVA without kernel_pmap\n"); -#ifdef DDB - db_print_backtrace(); -#endif + print_backtrace(); } KKASSERT(va < UPT_MIN_ADDRESS); /* assert used on user pmaps only */ diff --git a/sys/platform/pc64/amd64/db_trace.c b/sys/platform/pc64/amd64/db_trace.c index d1077f2f65..2c38d71b02 100644 --- a/sys/platform/pc64/amd64/db_trace.c +++ b/sys/platform/pc64/amd64/db_trace.c @@ -440,7 +440,7 @@ db_stack_trace_cmd(db_expr_t addr, boolean_t have_addr, db_expr_t count, } void -db_print_backtrace(void) +print_backtrace(void) { register_t rbp; diff --git a/sys/platform/pc64/amd64/pmap.c b/sys/platform/pc64/amd64/pmap.c index 3e5637f1fc..f5691bdf0b 100644 --- a/sys/platform/pc64/amd64/pmap.c +++ b/sys/platform/pc64/amd64/pmap.c @@ -109,8 +109,6 @@ #include #include -#include - #define PMAP_KEEP_PDIRS #ifndef PMAP_SHPGPERPROC #define PMAP_SHPGPERPROC 200 @@ -2081,15 +2079,11 @@ pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, #endif if (va < UPT_MAX_ADDRESS && pmap == &kernel_pmap) { kprintf("Warning: pmap_enter called on UVA with kernel_pmap\n"); -#ifdef DDB - db_print_backtrace(); -#endif + print_backtrace(); } if (va >= UPT_MAX_ADDRESS && pmap != &kernel_pmap) { kprintf("Warning: pmap_enter called on KVA without kernel_pmap\n"); -#ifdef DDB - db_print_backtrace(); -#endif + print_backtrace(); } /* @@ -2244,15 +2238,11 @@ pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m) if (va < UPT_MAX_ADDRESS && pmap == &kernel_pmap) { kprintf("Warning: pmap_enter_quick called on UVA with kernel_pmap\n"); -#ifdef DDB - db_print_backtrace(); -#endif + print_backtrace(); } if (va >= UPT_MAX_ADDRESS && pmap != &kernel_pmap) { kprintf("Warning: pmap_enter_quick called on KVA without kernel_pmap\n"); -#ifdef DDB - db_print_backtrace(); -#endif + print_backtrace(); } KKASSERT(va < UPT_MIN_ADDRESS); /* assert used on user pmaps only */ diff --git a/sys/platform/vkernel/i386/db_trace.c b/sys/platform/vkernel/i386/db_trace.c index 6954fb09bf..706a43ee49 100644 --- a/sys/platform/vkernel/i386/db_trace.c +++ b/sys/platform/vkernel/i386/db_trace.c @@ -386,7 +386,7 @@ db_stack_trace_cmd(db_expr_t addr, boolean_t have_addr, db_expr_t count, } void -db_print_backtrace(void) +print_backtrace(void) { register_t ebp; diff --git a/sys/sys/systm.h b/sys/sys/systm.h index 1c27ef2785..508b0b234e 100644 --- a/sys/sys/systm.h +++ b/sys/sys/systm.h @@ -139,7 +139,7 @@ struct savetls; struct krate; void Debugger (const char *msg); -void backtrace(void); +void print_backtrace(void); void mi_gdinit (struct globaldata *gd, int cpu); void mi_proc0init(struct globaldata *gd, struct user *proc0paddr); int dumpstatus (vm_offset_t addr, off_t count); diff --git a/sys/vm/vm_vmspace.c b/sys/vm/vm_vmspace.c index 2414ff95e0..e4988dea20 100644 --- a/sys/vm/vm_vmspace.c +++ b/sys/vm/vm_vmspace.c @@ -33,7 +33,6 @@ * * $DragonFly: src/sys/vm/vm_vmspace.c,v 1.14 2007/08/15 03:15:07 dillon Exp $ */ -#include "opt_ddb.h" #include #include @@ -49,7 +48,6 @@ #include #include -#include #include @@ -481,9 +479,7 @@ vkernel_lwp_exit(struct lwp *lp) if ((ve = vklp->ve) != NULL) { kprintf("Warning, pid %d killed with " "active VC!\n", lp->lwp_proc->p_pid); -#ifdef DDB - db_print_backtrace(); -#endif + print_backtrace(); pmap_setlwpvm(lp, lp->lwp_proc->p_vmspace); vklp->ve = NULL; KKASSERT(ve->refs > 0); -- 2.41.0