使用debugfs
在前面,我们学习到了sysctl这一基于sysfs和seq_file这一基于procfs文件系统进行交互数据的方式,其中procfs主要是针对进程属性,而sysfs是针对内核模型的,为了保证其稳健,我们很少拿来作为调试时数据交换使用,显然printk也满足不了,那么debugfs就应运而生了. 一般发行版系统会将debugfs挂载在/sys/kernel/debug这一目录下,在/etc/mtab有相关内容,如果没有,也可手动执行如下命令: mount -t debufgs none /the/debugfs/dir 在include/linux/debugfs.h文件里有debugfs用到的如下函数: static inline struct dentry *debugfs_create_dir(const char *name, struct dentry *parent); static inline struct dentry *debugfs_create_file(const char *name, umode_t mode, struct dentry *parent, void *data, const struct file_operations *fops); static inline void debugfs_remove(struct dentry *dentry) ; static inline void debugfs_remove_recursive(struct dentry *dentry) ; 很像前面procfs时的相关函数吧,这就不作解释了,还会用到如下函数: static inline struct dentry *debugfs_create_u8(const char *name, umode_t mode, struct dentry *parent, u8 *value) ; static inline struct dentry *debugfs_create_u16(const char *name, umode_t mode, struct dentry *parent, u16 *value); static inline struct dentry *de...