\ printk(KERN_DEBUG KLOG_MODNAME pr_fmt(fmt), ##__VA_ARGS__) #else #define pr_devel(fmt, ...) \ no_printk(KERN_DEBUG KLOG_MODNAME pr_fmt(fmt), ##__VA_ARGS__) #endif #include <linux/dynamic_debug.h> /* If you are
KERN_DEBUG:用于调试信息 上面每个字符串(以宏的形式展开)表示一个尖括号中的整数。范围分别为0~7。数值越小,优先级越高。 打印级别 默认打印级别 MESSAGE_LOGLEVEL_DEFAULT、CONSOLE_LOGLEVEL_DEFAULT宏 未指定优先级的printk语句采用的默认级别是MESSAGE_LOGLEVEL_DEFAULT;该宏在kernel/printk/printk.c中被指定为另...
CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=16000 CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y---关闭此选项,则不需要在命令行添加kmemleak=on 使用方法: 立即触发保存扫描结果 echo scan > /sys/kernel/debug/kmemleak 显示可能的内存泄漏的详细信息,需要先挂载debugfs文件系统: mount -t debugfs nodev /sys/kernel/debug...
no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)#endif 注意的是KERN_DEBUG,默认的 console 打印级别是 7(在 kernel/printk/printk.c 中定义了 #define DEFAULT_CONSOLE_LOGLEVEL 4)。只有那些级别 "小于4" 的调试信息才能打印出来,而 pr_devel() 对应的 KERN_DEBUG 的级别是 7,那就还需要提高 co...
KERN_DEBUG 用于调试信息。 每个字符串(以宏的形式展开)表示一个括号中的整数。整数值的范围 0- 7,数值越小,优先级就越高。 未指定优先级的 printk 语句采用的默认级别是 DEFAULT_MESSAGE_LOGLEVEL,这个宏在 kernel/printk.c 中被指定为一个整数。在 2.6.10 内核中,DEFAULT_MESSAGE_LOGLEVEL 就是KERN_WARNING...
printk(KERN_DEBUG )来输出打印信息。要打开这个开关需要下面两步。 1.1、打开调试开关 你调试的文件中必然包含了<linux/device.h>,或者<linux /paltforam_device.h>,后者包含了前者, 在包含此头文件之前,使用#define DEBUG 1 来打开调试开关:例如 点击(此处)折叠或打开 ...
`printk`函数是Linux内核中常用的调试输出函数之一。它可以将信息输出到系统日志中,开发人员可以通过查看系统日志来获取调试信息。`printk`函数支持不同的日志级别,如`KERN_DEBUG`、`KERN_INFO`、`KERN_ERR`等,开发人员可以根据需要选择合适的级别输出信息。
printk(KERN_DEBUG "Here I am: %s:%i\n", _ _FILE_ _, _ _LINE_ _); printk(KERN_CRIT "I'm trashed; giving up on %p\n", ptr); 1. 2. 样例:在用户空间或内核中开启及关闭打印调试消息 用户还可以在内核或用户空间应用程序定义统一的函数打印调试信息,可在Makefile文件中打开或关闭调试函数。
{ inode->i_fop = &def_blk_fops; inode->i_rdev = rdev; } else if (S_ISFIFO(mode)) inode->i_fop = &pipefifo_fops; else if (S_ISSOCK(mode)) ; /* leave it no_open_fops */ else printk(KERN_DEBUG "init_special_inode: bogus i_mode (%o) for" " inode %s:%lu\n", ...
日志分级: 善用printk的不同日志级别 (KERN_DEBUG, KERN_ERR),合理输出关键节点和错误信息。先软后硬: 在模拟器(如 QEMU)中充分调试逻辑和大部分功能,再上真机,极大减少物理崩溃。善用工具: dmesg 看内核日志是基础。ftrace 能追踪函数调用和耗时。perf 分析性能热点。当确需深入时,再研究KGDB。边界防御: ...