adb logcat 列印核心訊息

2021-08-26 16:41:24 字數 1557 閱讀 2402

在預設情況下,adb logcat只能顯示應用程式的除錯資訊,我把logcat.cpp修改了一下,讓它同時可以列印核心除錯資訊:

修改的檔案:system/core/logcat/logcat.cpp

1、首先先加入標頭檔案

#include //add by jay

2、定義所使用的tag

#define kernel_tag "kernel"

3、替換readloglines函式

static

void

readloglines(log_device_t*devices) ;

//addby jay zhang

intresult;

fd_setreadset;

for(dev=devices;dev;dev=dev->next)

}while

(1);

//ifweoversleepit'sok,i.e.ignoreeintr.

fd_zero(&readset);

for(dev=devices;dev;dev=dev->next)

result=select(max+1,&readset,null,null,sleep?null:&timeout);

}while

(result==-1&&errno==eintr);

if(result>=0)

if(errno==eagain)

perror(

"logcatread"

);exit(exit_failure);

}else

if(!ret)

entry->entry.msg[entry->entry.len]=

'\0'

;dev->enqueue(entry);

++queued_lines;

#if1//readkernellog

if((ret=klogctl(9,buffer,

sizeof

(buffer)))>0)else*/

printnextentry(dev);}}

#endif}}

if(result==0)

if(g_tail_lines==0||queued_lines<=g_tail_lines)

else

--queued_lines;

}//thecallerrequestedtojustdumpthelogandexit

if(g_nonblock)

}else

if(g_tail_lines==0)

else

--queued_lines;}}

}next:;}

}這裡沒有把核心除錯資訊的級別轉換成androind的log級別,entry->entry.msg[0] =android_log_info;使用了android_log_info級別,程序id用了當前的程序id。

然後就可以使用logcat來抓取kernel的log了!

若只列印核心訊息,使用:adb logcat -s kernel:i

讓adb logcat列印核心除錯資訊

在預設情況下,adb logcat只能顯示使用程式的除錯資訊,我把logcat.cpp修改了一下,讓它同時可以列印核心除錯資訊 system core logcat logcat.cpp static void readloglines int logfd while 1 else if ret n...

linux核心列印級別

1.printk 是乙個核心的乙個記錄日誌的機制,經常用來記錄資訊或者警告。printk可以指定輸出日誌的優先順序,在include linux kern levels.h中有相應的巨集定義 1 define kern soh 001 ascii start of header 2 define k...

SK BUFF 核心列印除錯

為了更方便的除錯報文,需要對sk buff的真正資料載荷進行除錯輸出,只需要在驅動中加入如下 就可以除錯了 static void qdmalib dump skb struct sk buff skb,struct net device dev netdev printk kern info,de...