Debug library

Dependents:   NetworkingCoreLib LwIPNetworking yeswecancoap lwip

Committer:
donatien
Date:
Fri Jun 22 16:17:38 2012 +0000
Revision:
3:53f6e0430d8e
Parent:
1:bd1844de60f1
Parent:
2:719e79a2291e
Merge

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 0:3ac250c92185 1 /* dbg.h */
donatien 2:719e79a2291e 2 /* Copyright (C) 2012 mbed.org, MIT License
donatien 2:719e79a2291e 3 *
donatien 2:719e79a2291e 4 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
donatien 2:719e79a2291e 5 * and associated documentation files (the "Software"), to deal in the Software without restriction,
donatien 2:719e79a2291e 6 * including without limitation the rights to use, copy, modify, merge, publish, distribute,
donatien 2:719e79a2291e 7 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
donatien 2:719e79a2291e 8 * furnished to do so, subject to the following conditions:
donatien 2:719e79a2291e 9 *
donatien 2:719e79a2291e 10 * The above copyright notice and this permission notice shall be included in all copies or
donatien 2:719e79a2291e 11 * substantial portions of the Software.
donatien 2:719e79a2291e 12 *
donatien 2:719e79a2291e 13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
donatien 2:719e79a2291e 14 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
donatien 2:719e79a2291e 15 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
donatien 2:719e79a2291e 16 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
donatien 2:719e79a2291e 17 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
donatien 2:719e79a2291e 18 */
donatien 0:3ac250c92185 19
donatien 0:3ac250c92185 20 #ifndef DBG_H_
donatien 0:3ac250c92185 21 #define DBG_H_
donatien 0:3ac250c92185 22
donatien 0:3ac250c92185 23 #ifdef __cplusplus
donatien 0:3ac250c92185 24 extern "C" {
donatien 0:3ac250c92185 25 #endif
donatien 0:3ac250c92185 26
donatien 0:3ac250c92185 27
donatien 0:3ac250c92185 28 void debug_init(void);
donatien 0:3ac250c92185 29 void debug(int level, const char* module, int line, const char* fmt, ...);
donatien 1:bd1844de60f1 30 void debug_set_newline(const char* newline);
donatien 0:3ac250c92185 31 void debug_error(const char* module, int line, int ret);
donatien 1:bd1844de60f1 32 void debug_exact(const char* fmt, ...);
donatien 0:3ac250c92185 33
donatien 0:3ac250c92185 34 #define DBG_INIT() do{ debug_init(); }while(0)
donatien 0:3ac250c92185 35
donatien 1:bd1844de60f1 36 #define DBG_SET_NEWLINE( x ) do{ debug_set_newline(x); }while(0)
donatien 1:bd1844de60f1 37
donatien 0:3ac250c92185 38 #if __DEBUG__ > 0
donatien 0:3ac250c92185 39 #ifndef __MODULE__
donatien 0:3ac250c92185 40 #error "__MODULE__ must be defined"
donatien 0:3ac250c92185 41 #endif
donatien 0:3ac250c92185 42 #endif
donatien 0:3ac250c92185 43
donatien 0:3ac250c92185 44 #if __DEBUG__ >= 1
donatien 0:3ac250c92185 45 #define ERR(...) do{ debug(1, __MODULE__, __LINE__, __VA_ARGS__); }while(0)
donatien 0:3ac250c92185 46 #else
donatien 0:3ac250c92185 47 #define ERR(...) do{ }while(0)
donatien 0:3ac250c92185 48 #endif
donatien 0:3ac250c92185 49
donatien 0:3ac250c92185 50 #if __DEBUG__ >= 2
donatien 0:3ac250c92185 51 #define WARN(...) do{ debug(2, __MODULE__, __LINE__, __VA_ARGS__); }while(0)
donatien 0:3ac250c92185 52 #else
donatien 0:3ac250c92185 53 #define WARN(...) do{ }while(0)
donatien 0:3ac250c92185 54 #endif
donatien 0:3ac250c92185 55
donatien 0:3ac250c92185 56 #if __DEBUG__ >= 3
donatien 0:3ac250c92185 57 #define INFO(...) do{ debug(3, __MODULE__, __LINE__, __VA_ARGS__); }while(0)
donatien 0:3ac250c92185 58 #define CHECK(ret) do{ if(ret){ debug_error(__MODULE__, __LINE__, ret); } }while(0)
donatien 0:3ac250c92185 59 #else
donatien 0:3ac250c92185 60 #define INFO(...) do{ }while(0)
donatien 0:3ac250c92185 61 #define CHECK(ret) do{ }while(0)
donatien 0:3ac250c92185 62 #endif
donatien 0:3ac250c92185 63
donatien 0:3ac250c92185 64 #if __DEBUG__ >= 4
donatien 0:3ac250c92185 65 #define DBG(...) do{ debug(4, __MODULE__, __LINE__, __VA_ARGS__); }while(0)
donatien 1:bd1844de60f1 66 #define DBGX(...) do{ debug_exact(__VA_ARGS__); }while(0)
donatien 0:3ac250c92185 67 #else
donatien 0:3ac250c92185 68 #define DBG(...) do{ }while(0)
donatien 1:bd1844de60f1 69 #define DBGX(...) do{ }while(0)
donatien 0:3ac250c92185 70 #endif
donatien 0:3ac250c92185 71
donatien 0:3ac250c92185 72 #ifdef __cplusplus
donatien 0:3ac250c92185 73 }
donatien 0:3ac250c92185 74 #endif
donatien 0:3ac250c92185 75
donatien 0:3ac250c92185 76 #endif /* DBG_H_ */