Added missing includes
[distributed.git] / src / libs / debug.h
blob0b44ace5b26b77c0a5f9e040f096009ff5a90278
1 //
2 // Copyright (C) 2008 Francesco Salvestrini
3 //
4 // This program is free software; you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation; either version 2 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
14 // You should have received a copy of the GNU General Public License along
15 // with this program; if not, write to the Free Software Foundation, Inc.,
16 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 #ifndef DEBUG_H
20 #define DEBUG_H
22 #include "autoconfig.h"
24 #include <cassert>
25 #include <cstdlib>
27 #include "libs/traces.h"
29 extern void backtrace_dump(void);
31 #define BUG() { \
32 TRACE(LVL_CRITICAL, \
33 "Bug hit in '%s' (%s:%d)\n", \
34 __PRETTY_FUNCTION__, __FILE__, __LINE__); \
35 TRACE(LVL_CRITICAL, "\n"); \
36 backtrace_dump(); \
37 abort(); \
40 #define BUG_ON(X) { \
41 if (X) { \
42 TRACE(LVL_CRITICAL, \
43 "Unsatisfied condition '%s' in '%s' (%s:%d)\n", \
44 #X, __PRETTY_FUNCTION__, __FILE__, __LINE__); \
45 TRACE(LVL_CRITICAL, "\n"); \
46 backtrace_dump(); \
47 abort(); \
48 } \
51 #define MISSING_CODE() { \
52 TRACE(LVL_DEBUG, "Missing code in '%s' (%s:%d)\n", \
53 __PRETTY_FUNCTION__, __FILE__, __LINE__); \
56 #endif // DEBUG_H