debug.h
上传用户:yyhongfa
上传日期:2013-01-18
资源大小:267k
文件大小:3k
开发平台:

C/C++

  1. /*
  2.  * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
  3.  * All rights reserved. 
  4.  * 
  5.  * Redistribution and use in source and binary forms, with or without modification, 
  6.  * are permitted provided that the following conditions are met:
  7.  *
  8.  * 1. Redistributions of source code must retain the above copyright notice,
  9.  *    this list of conditions and the following disclaimer.
  10.  * 2. Redistributions in binary form must reproduce the above copyright notice,
  11.  *    this list of conditions and the following disclaimer in the documentation
  12.  *    and/or other materials provided with the distribution.
  13.  * 3. The name of the author may not be used to endorse or promote products
  14.  *    derived from this software without specific prior written permission. 
  15.  *
  16.  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 
  17.  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
  18.  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
  19.  * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
  20.  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
  21.  * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
  22.  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
  23.  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 
  24.  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 
  25.  * OF SUCH DAMAGE.
  26.  *
  27.  * This file is part of the lwIP TCP/IP stack.
  28.  * 
  29.  * Author: Adam Dunkels <adam@sics.se>
  30.  *
  31.  */
  32. #ifndef __LWIP_DEBUG_H__
  33. #define __LWIP_DEBUG_H__
  34. //#include "arch/cc.h"
  35. /** lower two bits indicate debug level
  36.  * - 0 off
  37.  * - 1 warning
  38.  * - 2 serious
  39.  * - 3 severe
  40.  */
  41. #define DBG_LEVEL_OFF     0
  42. #define DBG_LEVEL_WARNING 1  /* bad checksums, dropped packets, ... */
  43. #define DBG_LEVEL_SERIOUS 2  /* memory allocation failures, ... */
  44. #define DBG_LEVEL_SEVERE  3  /* */ 
  45. #define DBG_MASK_LEVEL    3
  46. /** flag for LWIP_DEBUGF to enable that debug message */
  47. #define DBG_ON  0x80U
  48. /** flag for LWIP_DEBUGF to disable that debug message */
  49. #define DBG_OFF 0x00U
  50. /** flag for LWIP_DEBUGF indicating a tracing message (to follow program flow) */
  51. #define DBG_TRACE   0x40U
  52. /** flag for LWIP_DEBUGF indicating a state debug message (to follow module states) */
  53. #define DBG_STATE   0x20U
  54. /** flag for LWIP_DEBUGF indicating newly added code, not thoroughly tested yet */
  55. #define DBG_FRESH   0x10U
  56. /** flag for LWIP_DEBUGF to halt after printing this debug message */
  57. #define DBG_HALT    0x08U
  58. //#define LWIP_PLATFORM_ASSERT
  59. //#ifndef LWIP_NOASSERT
  60. //#  define LWIP_ASSERT(x,y) do { if(!(y)) LWIP_PLATFORM_ASSERT(x); } while(0)
  61. //#else
  62. #  define LWIP_ASSERT(x,y) 
  63. //#endif
  64. #ifdef LWIP_DEBUG
  65. /** print debug message only if debug message type is enabled...
  66.  *  AND is of correct type AND is at least DBG_LEVEL
  67.  */
  68. #  define LWIP_DEBUGF(debug,x) do { if (((debug) & DBG_ON) && ((debug) & DBG_TYPES_ON) && ((int)((debug) & DBG_MASK_LEVEL) >= DBG_MIN_LEVEL)) { LWIP_PLATFORM_DIAG(x); if ((debug) & DBG_HALT) while(1); } } while(0)
  69. #  define LWIP_ERROR(x)   do { LWIP_PLATFORM_DIAG(x); } while(0)  
  70. #else /* LWIP_DEBUG */
  71. #  define LWIP_DEBUGF(debug,x)
  72. #  define LWIP_ERROR(x)  
  73. #endif /* LWIP_DEBUG */
  74. #endif /* __LWIP_DEBUG_H__ */