打开ev_dbg的log信息

来源:互联网 发布:免费报税软件 编辑:程序博客网 时间:2024/06/04 19:41

需要两个步骤:

打开调试开关:

            你调试的文件中必然包含了<linux/device.h>,或者《linux /paltforam_device.h》,后者包含了前者,在包含此头文件之前,使用#define DEBUG 1 来打开调试开关:例如 

 #include <linux/kernel.h> 
#include <linux/init.h> 
#include <linux/clk.h> 
#include <linux/module.h> 
#define DEBUG    1 
#include <linux/platform_device.h> 
     在linux/device.h文件中: 
#define dev_printk(level, dev, format, arg...)    \ 
    printk(level "%s %s: " format , dev_driver_string(dev) , (dev)->bus_id , ## arg) 
#ifdef DEBUG 
#define dev_dbg(dev, format, arg...)        \ 
    dev_printk(KERN_DEBUG , dev , format , ## arg) 
#else 
static inline int __attribute__ ((format (printf, 2, 3))) 
dev_dbg(struct device * dev, const char * fmt, ...) 

    return 0; 

#endif 



2 修改文件kernel/printk文件 


/* printk's without a loglevel use this.. */ 
#define DEFAULT_MESSAGE_LOGLEVEL 4 /* KERN_WARNING */ 
/* We show everything that is MORE important than this.. */ 
#define MINIMUM_CONSOLE_LOGLEVEL 1 /* Minimum loglevel we let people use */ 
#define DEFAULT_CONSOLE_LOGLEVEL 8 /* anything MORE serious than KERN_DEBUG */ 
   其中DEFAULT_CONSOLE_LOGLEVEL 为终端console输出的最低级别,比这严重的都将输出。原来该值为7,则调试信息无法输出,修改为8则全部有输出。


    linux/kernel文件中 
#define    KERN_EMERG    "<0>"    /* system is unusable            */ 
#define    KERN_ALERT    "<1>"    /* action must be taken immediately    */ 
#define    KERN_CRIT    "<2>"    /* critical conditions            */ 
#define    KERN_ERR    "<3>"    /* error conditions            */ 
#define    KERN_WARNING    "<4>"    /* warning conditions            */ 
#define    KERN_NOTICE    "<5>"    /* normal but significant condition    */ 
#define    KERN_INFO    "<6>"    /* informational            */ 
#define    KERN_DEBUG    "<7>"    /* debug-level messages            */ 
可以看到KERN_DEBUG是级别最低的。