adb如何打印kernel输出log
16lz
2021-01-26
Android内核的Log输出
Android内核是基于Linxu kernel的,因此其log机制也是通用的,在Android内核中使用printk函数进行Log输出。与c语言的printf类似,printk提供格式化输入功能,同时,它也具有所有LOG机制的特点--提供日志级别过虑功能。printk提供了8种日志级别(详细的定义在include/linux/kern_levels.h中):
#ifndef __KERN_LEVELS_H__#define __KERN_LEVELS_H__#define KERN_SOH "\001" /* ASCII Start Of Header */#define KERN_SOH_ASCII '\001'#define KERN_EMERG KERN_SOH "0" /* system is unusable */#define KERN_ALERT KERN_SOH "1" /* action must be taken immediately */#define KERN_CRIT KERN_SOH "2" /* critical conditions */#define KERN_ERR KERN_SOH "3" /* error conditions */#define KERN_WARNING KERN_SOH "4" /* warning conditions */#define KERN_NOTICE KERN_SOH "5" /* normal but significant condition */#define KERN_INFO KERN_SOH "6" /* informational */#define KERN_DEBUG KERN_SOH "7" /* debug-level messages */#define KERN_DEFAULT KERN_SOH "d" /* the default kernel loglevel *//* * Annotation for a "continued" line of log printout (only done after a * line that had no enclosing \n). Only to be used by core/arch code * during early bootup (a continued line is not SMP-safe otherwise). */#define KERN_CONT ""#endif
printk的最简单的使用方法:
//KERN_ALERT表示日志级别,后面紧跟着要格式化字符串。printk(KERN_ALERT "This is the log printed by printk in linux kernel space.");
printk的带格式化输出使用方法:
printk(KERN_ERR "%s: Invalid parameter\n", __func__);
adb connect情况下输出kernel打印信息
Android系统中,printk输出的日志信息保存在/proc/kmsg中,要查看/proc/kmsg的内容,只输入在命令行中输入如下命令
shell@rk3288_box:/ # cat /proc/kmsg
输出结果如图
Paste_Image.png更多相关文章
- 『转』Android在TQ2440开发板上的移植
- Android字符串资源及其格式化
- 编译Android内核时遇到的jdk问题
- android 机器耗电
- Ophone和Android的关系如何?
- ubuntu下编译android源码、linux内核、android的源码结构以及编
- Android(安卓)JNI输出LOG
- Android调试的必杀技——反汇编
- Android(安卓)4.0.1 模拟器内核 最新下载地址及编译步骤