diff options
Diffstat (limited to 'storage/innobase/ut/ut0dbg.cc')
-rw-r--r-- | storage/innobase/ut/ut0dbg.cc | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/storage/innobase/ut/ut0dbg.cc b/storage/innobase/ut/ut0dbg.cc new file mode 100644 index 00000000..167cc714 --- /dev/null +++ b/storage/innobase/ut/ut0dbg.cc @@ -0,0 +1,61 @@ +/***************************************************************************** + +Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 2022, MariaDB Corporation. + +This program is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free Software +Foundation; version 2 of the License. + +This program is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with +this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + +*****************************************************************************/ + +/*****************************************************************//** +@file ut/ut0dbg.cc +Debug utilities for Innobase. + +Created 1/30/1994 Heikki Tuuri +**********************************************************************/ + +#include "univ.i" +#include "ut0dbg.h" + +/*************************************************************//** +Report a failed assertion. */ +ATTRIBUTE_NORETURN +void +ut_dbg_assertion_failed( +/*====================*/ + const char* expr, /*!< in: the failed assertion (optional) */ + const char* file, /*!< in: source file containing the assertion */ + unsigned line) /*!< in: line number of the assertion */ +{ + ut_print_timestamp(stderr); + fprintf(stderr, " InnoDB: Assertion failure in file %s line %u\n", + file, line); + if (expr) { + fprintf(stderr, + "InnoDB: Failing assertion: %s\n", expr); + } + + fputs("InnoDB: We intentionally generate a memory trap.\n" + "InnoDB: Submit a detailed bug report" + " to https://jira.mariadb.org/\n" + "InnoDB: If you get repeated assertion failures" + " or crashes, even\n" + "InnoDB: immediately after the mariadbd startup, there may be\n" + "InnoDB: corruption in the InnoDB tablespace. Please refer to\n" + "InnoDB: https://mariadb.com/kb/en/library/innodb-recovery-modes/\n" + "InnoDB: about forcing recovery.\n", stderr); + + fflush(stderr); + fflush(stdout); + abort(); +} |