让adb logcat打印内核调试信息
Wednesday, October 14th, 2009 | Author: admin | ? Edit ?
转载时请注明出处和作者联系方式
文章出处:http://www.limodev.cn/blog
作者联系方式:李先静 <xianjimli at hotmail dot com>
在默认情况下,adb logcat只能显示应用程序的调试信息,我把logcat.cpp修改了一下,让它同时可以打印内核调试信息:
system/core/logcat/logcat.cpp
static void readLogLines(int logfd)
{
char buffer[256] = {0};
while (1) {
unsigned char buf[LOGGER_ENTRY_MAX_LEN + 1] __attribute__((aligned(4)));
struct logger_entry *entry = (struct logger_entry *) buf;
int ret;
ret = read(logfd, entry, LOGGER_ENTRY_MAX_LEN);
if (ret < 0) {
if (errno == EINTR)
continue;
if (errno == EAGAIN)
break;
perror("logcat read");
exit(EXIT_FAILURE);
}
else if (!ret) {
fprintf(stderr, "read: Unexpected EOF!/n");
exit(EXIT_FAILURE);
}
/* NOTE: driver guarantees we read exactly one full entry */
entry->msg[entry->len] = '/0';
if (g_printBinary) {
printBinary(entry);
} else {
(void) processBuffer(entry);
}
/*读入内核调试信息*/
if((ret = klogctl(9, buffer, sizeof(buffer))) > 0) {
if((ret = klogctl(2, buffer, sizeof(buffer))) > 0) {
entry->tid = 0;
entry->pid = getpid();
/*priority*/
entry->msg[0] = ANDROID_LOG_INFO;
/*tag*/
strcpy(entry->msg+1, KERNEL_TAG);
/*message*/
strncpy(entry->msg+1+sizeof(KERNEL_TAG), buffer, ret);
entry->len = 1 + sizeof(KERNEL_TAG) + ret + 1;
entry->msg[entry->len] = '/0';
if (g_printBinary) {
printBinary(entry);
} else {
(void) processBuffer(entry);
}
}
}
}
}
这里没有把内核调试信息的级别转换成Androind的LOG级别,全部使用了ANDROID_LOG_INFO级别,进程ID用了当前的进程ID。对我们来说已经够用了,有需要的朋友可以继续完善。
分享到:
相关推荐
替换system/core/logcat目录,可以支持adb logcat 的kernel打印
ADB logcat 查询工具,解决调试android应用时日志抓取问题,再也不为日志内容一晃而过烦恼了
android的日志查看工具,运行依赖于adb logcat,所以必须配置好adb的环境变量。
编译该工程源码生成kernellogd程序,通过adb push到手机,然后执行kernellogd 之后,就可以打印输出内核的调试日志信息
adb logcat 教程,ADB使用教程.pdf
我们在手机调试中通常会需要通过adb命令来读取手机的日志信息 例如使用adb logcat 但是读取log后,log文本中除了期望的数据,还有其他很多数据,为了有针对性的将期望数据筛选出来如电池电压,温度,电量等信息,...
buildroot方式移植logcat,目前我用的内核时linux-4.19,该资源包里面包含以下文件 adb-logcat_dl.tar.gz android_logger.tar.gz package_adb_logcat.tar.gz package_android-tools.tar.gz
android的日志查看工具,运行依赖于adb logcat,所以必须配置好adb的环境变量。 修复部分乱码问题
NULL 博文链接:https://mtj13617254943-126-com.iteye.com/blog/1004521
运用bat脚本打包logcat、adb shell语句等代码,并克服了进入shell后后续代码无法执行的问题
adb调试桥adb调试桥adb调试桥adb调试桥adb调试桥adb调试桥adb调试桥adb调试桥adb调试桥adb调试桥adb调试桥adb调试桥adb调试桥adb调试桥adb调试桥adb调试桥adb调试桥adb调试桥adb调试桥adb调试桥adb调试桥adb调试桥...
android真机调试时无法显示logcat信息的解决方法介绍: window–>show view–>android->devices, 打开devices,点击右边的截屏图片的按钮。等到出现截图的时候,logcat就出来信息了! 您可能感兴趣的文章:在...
Android SDK中adb logcat命令的一种色彩丰富且高度可配置的替代方法。 注意:logcat-color定位于OS X和Linux,当前在Windows中不起作用。 安装 使用pip / easy_install安装(可能需要sudo) $ [sudo] pip install ...
adb logcat查看日志工具,注意:必须有root权限才能查看完整logcat信息。详细介绍请点击http://developer.t-firefly.com/forum.php?mod=viewthread&tid=202&page=1&extra=#pid369
ADB & Logcat工具使用环境准备.pdfADB & Logcat工具使用环境准备.pdf
本文主要介绍Android shell命令行中过滤adb logcat输出的方法,这里整理了几种方法,并详细的说明,有需要的朋友可以参考下
我们在Android开发中总能看到程序的log日志内容充满了屏幕,而真正对开发者有意义的信息被淹没在洪流之中,让开发者无所适从,严重影响开发效率。本文就具体介绍几种在shell命令行中过滤adb logcat输出的方法。 1...
一、 Android 常用开发术语 二、 Android模拟器 三、 Android开发中LogCat工具的使用 四、 Android的ADB工具使用