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