Chinaunix首页 | 论坛 | 博客
  • 博客访问: 250503
  • 博文数量: 65
  • 博客积分: 2599
  • 博客等级: 少校
  • 技术积分: 710
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-04 10:49
文章分类

全部博文(65)

文章存档

2015年(4)

2013年(2)

2012年(4)

2011年(51)

2010年(4)

分类: LINUX

2011-03-21 15:33:59

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
阅读(913) | 评论(0) | 转发(0) |
0

上一篇:kbuild: module.txt

下一篇:Linux Kernel 同步机制

给主人留下些什么吧!~~