最简单的打开DEBUG宏的方法是修改Makefile文件,比如我们要打开kernel/drivers/gpio/下面所有文件以及子目录下所有文件的DEBUG宏,可以在kernel/drivers/gpio/Makefile中添加如下代码,其中,如果是ccflags-y := -DDEBUG表示只打开kernel/drivers/gpio/下面的文件的DEBUG宏,但不包括子目录
mount -t debugfs nodev /sys/kernel/debugcat /sys/kernel/debug/kmemleak CONFIG_KALLSYMS 该选项将在内核中包含符号信息,默认是打开的,符号信息用于调试上下文,没有此符号,oops清单只能给出十六进制的内核反向跟踪信息,这通常没有多少用处。 ONFIG_IKCONFIG //放到镜像中 CONFIG_IKCONFIG_PROC //放到 proc目录...
kernel的source code中有很多使用pr_debug/dev_dbg输出的日志信息(例如device tree解析的代码,drivers/of/fdt.c)。默认情况下,kernel不会将这些日志输出到控制台上,除非: 1)开启了DEBUG宏,并且 2)kernel printk的默认日志级别大于7 看似简单,不过我相信每个人都问过这样的问题(不管是问自己还是问别人,特别是在调...
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...
//file:pr_debug.c#include<linux/init.h>#include<linux/module.h>#include<linux/kernel.h>#include<linux/printk.h>staticinttest_init(void){ pr_debug("test_init!\n");return0; }staticvoidtest_exit(void){ pr_debug("test_exit!\n"); ...
mount-tdebugfs none /sys/kernel/debug/ 1. 三、查看debug信息 所有debug信息都在/sys/kernel/debug/路径中。 比如查看当前gpio使用情况: 四、设置自动挂载点 修改/etc/fstab文件,添加debugfs挂载信息: 这样在系统启动之后就会自动挂载debugfs。
核心:ko (kernel object) 微内核:windows,solaris(线程) kernel初始化的过程: 1、设备探测 2、驱动初始化(可能会从initrd (initramfs)文件中装载驱动模块) 3、以只读挂载根文件系统 4、装载第一个进程init(PID:1) 用户控件访问、监控内核的方式: /proc, /sys ...
builtin Module.symvers samples sound usr vmlinux-gdb.py root@ubuntu:~/kernel/linux-5.6.14# root@ubuntu:~/kernel/linux-5.6.14# root@ubuntu:~/kernel/linux-5.6.14# sudo make modules_install INSTALL arch/x86/crypto/aesni-intel.ko INSTALL arch/x86/crypto/blowfish-x86_64.ko INSTALL arch/x86...
mount-tdebugfsnone/sys/kernel/debug 或者: mount-tdebugfsdebugfs/sys/kernel/debug/ 也可以在/etc/fstab文件中使用等效的语句: 默认情况下,在一些发行版的linux系统中,只有root用户可以访问debugfs根目录。 注意,在内核源码中,debugfs API仅以GPL方式导出到模块。