用ADB的logcat打印内核信息

通过修改adb的logcat.cpp源码,能够使logcat不仅输出应用日志,还能捕获到内核调试信息。在logcat的readLogLines函数中,增加了调用klogctl获取内核日志的逻辑,并将这些信息转化为Android的日志格式,尽管没有精确映射到Android的LOG级别,而是统一使用ANDROID_LOG_INFO级别,但足以满足基本需求。有兴趣的开发者可以进一步优化此功能。
摘要由CSDN通过智能技术生成
在默认情况下,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, "rea
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值