1. .h文件中:
#ifndef __SCULL_H__
#define __SCULL_H__
#undef PDEBUG
#ifdef SCULL_DEBUG
# ifdef __KERNEL__ //在内核态下运行
# define PDEBUG(fmt, args...) printk(KERN_DEBUG "SCULL: " fmt, ## args)
# else
# define PDEBUG(fmt, args...) fprintf(stderr, fmt, ## args)
# endif
#else
# define PDEBUG(fmt, args...) //不需要调试
#endif
#undef PDEBUGG
#define PDEBUGG(fmt, args...) //不需要这么多的调试打印语句,手工关闭一些
#endif /* ----- end of __SCULL_H__ ----- */
2. Makefile中添加:
# 调试信息
DEBUG :=y
ifeq ($(DEBUG),y)
SCULLDEBFLAGS := -O -g -DSCULL_DEBUG #O为了展开inline函数,-DSCULL_DEBUG定义了 #SCULL_DEBUG变量
else
SCULLDEBFLAGS := -O2
endif
EXTRA_CFLAGS += $(SCULLDEBFLAGS)
新版本的内核编译时已经不再允许使用CFLAGS了,应该使用EXTRA_CFLAGS
而且注意是 +=!!!!
3. .c文件中
在需要的地方,添加
#ifdef SCULL_DEBUG
PDEBUG("debug information");
#endif
阅读(945) | 评论(0) | 转发(0) |