关于开启lwIP协议栈的调试输出LWIP_DEBUGF
时间: 2023-12-15 08:06:54 浏览: 242
LwIP协议栈源码详解_LwIP_协议栈详解_
5星 · 资源好评率100%
LWIP_DEBUGF是一个宏定义,用于在lwIP协议栈中输出调试信息。它的定义如下:
```c
#define LWIP_DEBUGF(debug, message) \
do { \
if ((debug) && (lwip_debug)) { \
LWIP_PLATFORM_DIAG((_U32)"lwIP: ", message); \
} \
} while (0)
```
其中,debug是一个表示调试级别的参数,message则是要输出的调试信息。在使用LWIP_DEBUGF输出调试信息时,需要先定义LWIP_DEBUG宏来开启调试功能,并设置输出级别。在lwipopts.h文件中,可以找到如下代码:
```c
#define LWIP_DEBUG 0
```
将LWIP_DEBUG的值设置为1,即可开启调试功能。同时,还需要根据需要设置输出级别,可以在lwipopts.h文件中找到类似如下代码:
```c
#define ETHARP_DEBUG LWIP_DBG_OFF
#define NETIF_DEBUG LWIP_DBG_ON
#define PBUF_DEBUG LWIP_DBG_OFF
#define API_LIB_DEBUG LWIP_DBG_OFF
#define API_MSG_DEBUG LWIP_DBG_OFF
#define SOCKETS_DEBUG LWIP_DBG_OFF
#define ICMP_DEBUG LWIP_DBG_OFF
#define IGMP_DEBUG LWIP_DBG_OFF
#define INET_DEBUG LWIP_DBG_OFF
#define IP_DEBUG LWIP_DBG_OFF
#define IP_REASS_DEBUG LWIP_DBG_OFF
#define RAW_DEBUG LWIP_DBG_OFF
#define MEM_DEBUG LWIP_DBG_OFF
#define MEMP_DEBUG LWIP_DBG_OFF
#define SYS_DEBUG LWIP_DBG_OFF
#define TCP_DEBUG LWIP_DBG_OFF
#define TCP_INPUT_DEBUG LWIP_DBG_OFF
#define TCP_FR_DEBUG LWIP_DBG_OFF
#define TCP_RTO_DEBUG LWIP_DBG_OFF
#define TCP_CWND_DEBUG LWIP_DBG_OFF
#define TCP_WND_DEBUG LWIP_DBG_OFF
#define TCP_OUTPUT_DEBUG LWIP_DBG_OFF
#define TCP_RST_DEBUG LWIP_DBG_OFF
#define TCP_QLEN_DEBUG LWIP_DBG_OFF
#define UDP_DEBUG LWIP_DBG_OFF
#define TCPIP_DEBUG LWIP_DBG_OFF
#define SLIP_DEBUG LWIP_DBG_OFF
#define DHCP_DEBUG LWIP_DBG_OFF
#define AUTOIP_DEBUG LWIP_DBG_OFF
#define DNS_DEBUG LWIP_DBG_OFF
#define IP6_DEBUG LWIP_DBG_OFF
#define DHCP6_DEBUG LWIP_DBG_OFF
#define MLD6_DEBUG LWIP_DBG_OFF
#define ICMP6_DEBUG LWIP_DBG_OFF
#define ND6_DEBUG LWIP_DBG_OFF
#define UDP6_DEBUG LWIP_DBG_OFF
#define TCP6_DEBUG LWIP_DBG_OFF
```
其中,每个宏定义了一个调试输出级别,可以根据需要将其设置为LWIP_DBG_ON、LWIP_DBG_OFF或LWIP_DBG_TRACE。例如,将IP_DEBUG的值设置为LWIP_DBG_ON,则可以开启IP协议相关的调试输出。在需要输出调试信息的地方,可以使用LWIP_DEBUGF宏来输出信息。例如:
```c
LWIP_DEBUGF(IP_DEBUG, ("Received packet of length %d\n", p->tot_len));
```
这条语句将输出一个类似于“lwIP: Received packet of length 128”这样的调试信息,其中128是p->tot_len的值。
阅读全文