内核调试pr_debug
在内核驱动里面经常可以看到pr_debug
这个宏是这样定义的
-----------------------——
/* If you are writing a driver, please use dev_dbg instead */
#if defined(DEBUG) //如果 DEBUG定义了,那么使用printk(KERN_DEBUG "")
#define pr_debug(fmt, ...) \
printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
#elif defined(CONFIG_DYNAMIC_PRINTK_DEBUG) //??????
#define pr_debug(fmt, ...) do { \
dynamic_pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \
} while (0)
#else //都没定义就是空语句了
#define pr_debug(fmt, ...) \
({ if (0) printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); 0; })
#endif
-------------------------
DEBUG定义
在makefile中会有
——-----------------------
ifeq ($(CONFIG_MMC_DEBUG),y)
EXTRA_CFLAGS += -DDEBUG
endif
—————————————————————————