【recovery】android使用串列埠列印recovery除錯日誌
1、應用背景:
除錯android recovery時,由於recovery預設的日誌是儲存到/cache相關資料夾下的檔案中的,所以每次只能在升級完成後重啟系統後才能看到相關的除錯日誌資訊,這對除錯帶來很大的不變,如有的時候recovery操作失敗導致系統無法啟動時,無法看到相關的日誌,因此這時候可以使用本文中提供的方法將相關日誌從除錯串列埠輸出,直接用串列埠在升級過程中檢視日誌。
2、實現思路
實現思路比較簡單,就是將原來列印日誌的函式封裝,然後需要時直接將日誌從串列埠輸出;
3、程式碼實現
(1)、日誌輸出
將寫日誌的函式直接放到一個獨立的標頭檔案中,這樣需要用的檔案直接包含這個標頭檔案就行了。如下為本文中提供的標頭檔案原始碼:
#ifndef _LANDSEM_RECOVERY_LOG_H
#define _LANDSEM_RECOVERY_LOG_H
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdarg.h>
#define USE_UART_DEBUG 0
#if USE_UART_DEBUG
#define DEBUG_UART_PORT "/dev/ttyS0"
#endif
static int landsem_dbg_log(const char *fmt, ...) {
int ret;
va_list ap;
va_start(ap, fmt);
#if USE_UART_DEBUG
FILE *tty_out = fopen(DEBUG_UART_PORT, "w+");
if(NULL != tty_out) {
ret = vfprintf(tty_out, fmt, ap);
fclose(tty_out);
tty_out = NULL;
}
else {
ret = vfprintf(stdout, fmt, ap);
}
#else
ret = vfprintf(stdout, fmt, ap);
#endif
va_end(ap);
return ret;
}
#endif
需要從串列埠輸出除錯日誌時僅僅需要開啟巨集定義USE_UART_DEBUG即可,關閉時輸出到stdout中。(2)、修改呼叫
替換需要輸出日誌的地方的程式碼,直接使用上面標頭檔案中的方法列印除錯日誌即可。
相關文章
- Oracle歸檔日誌使用情況: v$recovery_file_dest and v$recovery_area_usage.Oracle
- Android除錯----日誌Android除錯
- win10 如何除錯串列埠_win10串列埠除錯怎麼除錯Win10除錯串列埠
- 9針串列埠除錯串列埠除錯
- J-LINK RTT列印除錯,釋放串列埠資源除錯串列埠
- gdbserver連線Ubuntu除錯程式(使用串列埠)ServerUbuntu除錯串列埠
- serial for mac 串列埠除錯工具Mac串列埠除錯
- Backup And Recovery User's Guide-備份後刪除歸檔重做日誌GUIIDE
- linux串列埠命令列除錯Linux串列埠命令列除錯
- web實現串列埠除錯助手Web串列埠除錯
- 沒有真實串列埠裝置時使用"虛擬串列埠驅動"除錯你的串列埠程式碼串列埠除錯
- Nodejs 進階:用 debug 模組列印除錯日誌NodeJS除錯
- Backup And Recovery User's Guide-使用RMAN備份歸檔重做日誌GUIIDE
- 日誌與除錯除錯
- 用VB除錯串列埠通訊 (轉)除錯串列埠
- 嵌入式系統除錯Uboot串列埠互動除錯除錯boot串列埠
- 樹莓派已經通過網路連線通過串列埠通訊在串列埠除錯小助手列印與操作樹莓派串列埠除錯
- 超好用的繪圖串列埠除錯助手繪圖串列埠除錯
- Backup And Recovery User's Guide-聯機重做日誌切換GUIIDE
- ORA-38708與清除Recovery Area中的歸檔日誌
- java日誌列印使用指南Java
- Oracle 11g DataGuard增加standby日誌組報錯"ORA-01156: recovery or flashback"Oracle
- 【Spring】日誌列印sql,日誌配置列印sqlSpringSQL
- 【linux學習--工具篇】串列埠除錯工具Linux串列埠除錯
- Crash recovery和Media recovery的區別
- 【Oracle】-Difference between Instance recovery and Crash RecoveryOracle
- 通過JLINK實現串列埠顯示除錯串列埠除錯
- 嵌入式:本機檢視串列埠除錯資訊串列埠除錯
- 一款小而美的線上串列埠除錯工具串列埠除錯
- Backup And Recovery User's Guide-備份歸檔重做日誌檔案GUIIDE
- Backup And Recovery User's Guide-覆蓋歸檔日誌目的地GUIIDE
- android串列埠程式Android串列埠
- Create recovery catalog Configure Recovery Manager
- oracle RECOVERY_PARALLELISM與instance recovery和medium recovery的關係小記OracleParallel
- node inspect chrome日誌除錯Chrome除錯
- Object-C使用NSLog列印日誌Object
- Backup And Recovery User's Guide-備份資料庫-使用RMAN備份歸檔重做日誌GUIIDE資料庫
- 關閉Druid中某些錯誤日誌列印UI