xref: /dflybsd-src/sys/kern/kern_debug.c (revision 568e93d8fa8449cb20bea3e66381dd687cba3086)
12b5dbafdSHiten Pandya /*
2090bff12SMatthew Dillon  * Copyright (c) 2003, 2005, 2019 The DragonFly Project.  All rights reserved.
369b54012SHiten Pandya  *
4ea5f14cdSHiten Pandya  * This code is derived from software contributed to The DragonFly Project
5ea5f14cdSHiten Pandya  * by Hiten Pandya <hmp@backplane.com>.
6ea5f14cdSHiten Pandya  *
7ea5f14cdSHiten Pandya  * Redistribution and use in source and binary forms, with or without
8ea5f14cdSHiten Pandya  * modification, are permitted provided that the following conditions
9ea5f14cdSHiten Pandya  * are met:
10ea5f14cdSHiten Pandya  *
11ea5f14cdSHiten Pandya  * 1. Redistributions of source code must retain the above copyright
12ea5f14cdSHiten Pandya  *    notice, this list of conditions and the following disclaimer.
13ea5f14cdSHiten Pandya  * 2. Redistributions in binary form must reproduce the above copyright
14ea5f14cdSHiten Pandya  *    notice, this list of conditions and the following disclaimer in
15ea5f14cdSHiten Pandya  *    the documentation and/or other materials provided with the
16ea5f14cdSHiten Pandya  *    distribution.
17ea5f14cdSHiten Pandya  * 3. Neither the name of The DragonFly Project nor the names of its
18ea5f14cdSHiten Pandya  *    contributors may be used to endorse or promote products derived
19ea5f14cdSHiten Pandya  *    from this software without specific, prior written permission.
20ea5f14cdSHiten Pandya  *
21ea5f14cdSHiten Pandya  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22ea5f14cdSHiten Pandya  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23ea5f14cdSHiten Pandya  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24ea5f14cdSHiten Pandya  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
25ea5f14cdSHiten Pandya  * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26ea5f14cdSHiten Pandya  * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
27ea5f14cdSHiten Pandya  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28ea5f14cdSHiten Pandya  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
29ea5f14cdSHiten Pandya  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30ea5f14cdSHiten Pandya  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
31ea5f14cdSHiten Pandya  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32ea5f14cdSHiten Pandya  * SUCH DAMAGE.
3369b54012SHiten Pandya  *
342b5dbafdSHiten Pandya  * Copyright (c) 1986, 1988, 1991, 1993
352b5dbafdSHiten Pandya  *	The Regents of the University of California.  All rights reserved.
362b5dbafdSHiten Pandya  *
372b5dbafdSHiten Pandya  * Redistribution and use in source and binary forms, with or without
382b5dbafdSHiten Pandya  * modification, are permitted provided that the following conditions
392b5dbafdSHiten Pandya  * are met:
402b5dbafdSHiten Pandya  * 1. Redistributions of source code must retain the above copyright
412b5dbafdSHiten Pandya  *    notice unmodified, this list of conditions, and the following
422b5dbafdSHiten Pandya  *    disclaimer.
432b5dbafdSHiten Pandya  * 2. Redistributions in binary form must reproduce the above copyright
442b5dbafdSHiten Pandya  *    notice, this list of conditions and the following disclaimer in the
452b5dbafdSHiten Pandya  *    documentation and/or other materials provided with the distribution.
462b5dbafdSHiten Pandya  * 3. Neither the name of the University nor the names of its contributors
472b5dbafdSHiten Pandya  *    may be used to endorse or promote products derived from this software
482b5dbafdSHiten Pandya  *    without specific prior written permission.
492b5dbafdSHiten Pandya  *
502b5dbafdSHiten Pandya  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
512b5dbafdSHiten Pandya  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
522b5dbafdSHiten Pandya  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
532b5dbafdSHiten Pandya  * IN NO EVENT SHALL THE AUTHOR OR THE VOICES IN HIS HEAD BE LIABLE FOR ANY
542b5dbafdSHiten Pandya  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
552b5dbafdSHiten Pandya  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
562b5dbafdSHiten Pandya  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
572b5dbafdSHiten Pandya  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
582b5dbafdSHiten Pandya  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
592b5dbafdSHiten Pandya  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
602b5dbafdSHiten Pandya  *
61fdd038ccSHiten Pandya  * Adopted from:
622b5dbafdSHiten Pandya  *	src/sys/kern/kern_shutdown.c
632b5dbafdSHiten Pandya  *
646ea70f76SSascha Wildner  * $DragonFly: src/sys/kern/kern_debug.c,v 1.6 2006/12/23 00:35:03 swildner Exp $
652b5dbafdSHiten Pandya  *
662b5dbafdSHiten Pandya  */
672b5dbafdSHiten Pandya 
682b5dbafdSHiten Pandya /*
692b5dbafdSHiten Pandya  * Various debug routines.
702b5dbafdSHiten Pandya  *
712b5dbafdSHiten Pandya  */
722b5dbafdSHiten Pandya 
732b5dbafdSHiten Pandya #include "opt_ddb.h"
742b5dbafdSHiten Pandya 
752b5dbafdSHiten Pandya #include <sys/param.h>
762b5dbafdSHiten Pandya #include <sys/systm.h>
77090bff12SMatthew Dillon #include <sys/sysctl.h>
782b5dbafdSHiten Pandya 
792b5dbafdSHiten Pandya #include <ddb/ddb.h>
802b5dbafdSHiten Pandya 
81090bff12SMatthew Dillon static uint32_t	debug_32bit;
82*568e93d8SAntonio Huete Jimenez static uint64_t	debug_64bit;
83090bff12SMatthew Dillon 
84090bff12SMatthew Dillon SYSCTL_BIT32(_debug, OID_AUTO, b32_0, CTLFLAG_RW, &debug_32bit, 0, 0, "");
85090bff12SMatthew Dillon SYSCTL_BIT32(_debug, OID_AUTO, b32_31, CTLFLAG_RW, &debug_32bit, 0, 31, "");
86090bff12SMatthew Dillon SYSCTL_BIT64(_debug, OID_AUTO, b64_0, CTLFLAG_RW, &debug_64bit, 0, 0, "");
87090bff12SMatthew Dillon SYSCTL_BIT64(_debug, OID_AUTO, b64_63, CTLFLAG_RW, &debug_64bit, 0, 63, "");
88090bff12SMatthew Dillon 
89090bff12SMatthew Dillon 
902b5dbafdSHiten Pandya /*
912b5dbafdSHiten Pandya  * Simple DDB stack trace funtionality.
922b5dbafdSHiten Pandya  */
931e5fb84bSAggelos Economopoulos #ifndef DDB
942b5dbafdSHiten Pandya void
print_backtrace(int count __unused)957ce2998eSAlex Hornung print_backtrace(int count __unused)
962b5dbafdSHiten Pandya {
976ea70f76SSascha Wildner 		kprintf("Cannot print stack trace.\n");
986ea70f76SSascha Wildner 		kprintf("DDB kernel option is needed.\n");
992b5dbafdSHiten Pandya }
1001e5fb84bSAggelos Economopoulos #endif
101