有很多驱动代码使用pr_debug/dev_dbg输出的日志信息。默认情况下,kernel不会将这些日志输出到控制台上,dmesg 命令是看不到这个这些消息的,比如dev_dbg定义如下: kernel-4.4/include/linux/printk.h /* pr_devel() should produce zero code unless DEBUG is defined */ 如果没有#define DEBUG #ifdef DEBUG #de...
mount -t debugfs nodev /sys/kernel/debugcat /sys/kernel/debug/kmemleak CONFIG_KALLSYMS 该选项将在内核中包含符号信息,默认是打开的,符号信息用于调试上下文,没有此符号,oops清单只能给出十六进制的内核反向跟踪信息,这通常没有多少用处。 ONFIG_IKCONFIG //放到镜像中 CONFIG_IKCONFIG_PROC //放到 proc目录...
CONFIG_DEBUG_KMEMLEAK=y 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 ...
cat/sys/kernel/debug/dynamic_debug/control 2.5.3 启用调试命令 代码语言:bash AI代码解释 echo'func my_function +p'>/sys/kernel/debug/dynamic_debug/control 更多细节请参考动态debug的内核 https://www.kernel.org/doc/html/v4.14/admin-guide/dynamic-debug-howto.html 3. 结束语 通过有效地使用这些工...
1)开启了DEBUG宏 其实开启DEBUG宏的方法很简单,在需要pr_debug/dev_dbg输出的模块开头,直接#define DEBUG即可,kernel中有一个例子: /* init/main.c */ #define DEBUG /* Enable initcall_debug */ 不过这种方法有个缺点:我们必须准确的知道需要debug那个C文件,如果想大网撒鱼(例如,想debug为什么新修改的DTS文...
CONFIG_DEBUG_FS=yCONFIG_DYNAMIC_DEBUG=y debugfs默认会挂载到/sys/kernel/debug,如果没有挂载,可以执行以下命令挂载 #mount -t debugfs none /sys/kernel/debug/# mount/dev/root on /typesquashfs (ro,relatime)devtmpfson /devtypedevtmpfs (rw,relatime,size=44068k,nr_inodes=11017,mode=755)procon /pro...
CONFIG_DEBUG_KERNEL=y CONFIG_KLLSYMS=y CONFIG_SPINLOCK_SLEEP=y 四 引发bug并打印信息 1 BUG()和BUG_ON() 一些内核调用可以用来方便标记bug,提供断言并输出信息。最常用的两个是BUG()和BUG_ON()。 定义在中: #ifndef HAVE_ARCH_BUG#defineBUG() do {printk("BUG: failure at %s:%d/%s()!", __...
CONFIG_DEBUG_KERNEL = y CONFIG_KLLSYMS = y CONFIG_SPINLOCK_SLEEP = y 1. 2. 3. 4. 四 引发bug并打印信息 1 BUG()和BUG_ON() 一些内核调用可以用来方便标记bug,提供断言并输出信息。最常用的两个是BUG()和BUG_ON()。 定义在<include/asm-generic>中: ...
不过,当选择"Kernel debugging->Compile the kernel with debug info"选项后配置系统将自动打开调试选项。另外,选择"kernel debugging with remote gdb"后,配置系统将自动打开"Compile the kernel with debug info"选项。 内核编译完成后,使用scp命令进行将相关文件拷贝到target机上(当然也可以使用其它的网络工具,如rcp...