合宙LuatOS的個(gè)人空間 http://selenalain.com/space-uid-176273.html [收藏] [復制] [RSS]

博客

破解遠程errDump調試難題:避開(kāi)陷阱的實(shí)用方法論

已有 56 次閱讀2025-6-9 13:47 |個(gè)人分類(lèi):4G模組| 物聯(lián)網(wǎng), 單片機, 4G模塊, 通訊模組, 嵌入式硬件

遠程errDump調試中的陷阱猶如暗礁,阻礙效率提升。本文系統化呈現避坑方法論,結合具體案例與技巧,教您如何預判、規避并解決常見(jiàn)陷阱,實(shí)現高效排障。

本文特別分享errDump功能及Air8101開(kāi)發(fā)板實(shí)操驗證。

 

一、errDump功能介紹

1.1 errDump有什么用?

errDump是LuatOS系統中的錯誤日志上報模塊,主要用于遠程調試與故障診斷。

其原理是將模塊運行過(guò)程中產(chǎn)生的錯誤信息或者應用日志,通過(guò)TCP/UDP上報到互聯(lián)網(wǎng)上的指定服務(wù)器,技術(shù)人員可以在服務(wù)器上查閱日志,協(xié)助遠程了解設備運行情況或者故障診斷。


核心價(jià)值體現在:

1)實(shí)時(shí)監控設備狀態(tài)將設備運行時(shí)的錯誤信息(如系統崩潰、協(xié)程異常、網(wǎng)絡(luò )故障等)通過(guò)TCP/UDP/HTTP協(xié)議上報到指定服務(wù)器。

2)支持量產(chǎn)設備維護對于已投放市場(chǎng)的設備,無(wú)需現場(chǎng)調試即可遠程定位問(wèn)題,顯著(zhù)降低維護成本。

3)靈活配置用戶(hù)可自定義上報周期、服務(wù)器地址及日志類(lèi)型,適應不同場(chǎng)景需求。


1.2 錯誤信息及日志類(lèi)型

目前errDump支持2類(lèi)錯誤日志的儲存與上報:

1)系統任務(wù)報錯

腳本報錯屬于系統異常日志,程序報錯時(shí)會(huì )自動(dòng)寫(xiě)入。

如果使用自動(dòng)上報到iot平臺,則在下次重啟會(huì )自動(dòng)讀取并上報;如果是自行讀取上報,可通過(guò)errDump.dump(buff,errDump.TYPE_SYS, ture) 來(lái)讀取系統異常日志,并根據自己需求自定義傳輸。

2)用戶(hù)自行寫(xiě)入

用戶(hù)自行寫(xiě)入異常日志,是通過(guò) errDump.record() 接口來(lái)保存的異常日志。

如果設置了定時(shí)上報周期的話(huà),則會(huì )定期上報到服務(wù)器中;如果自行讀取上報的話(huà),可以通過(guò) errDump.dump(nil, errDump.TYPE_SYS, true) 來(lái)讀取用戶(hù)異常日志,并根據自己需求自定義傳輸。


1.3 存儲區域與空間管理

日志文件都是儲存在文件系統中。系統異常日志文件和用戶(hù)異常日志文件最大都是4KB。

當存儲空間不足時(shí),新日志會(huì )覆蓋最舊的數據。用戶(hù)可通過(guò)errDump.dump() 手動(dòng)讀取并清理日志,避免自動(dòng)覆蓋。


1.4 日志上報與讀取方式

1)自動(dòng)上報

通過(guò)errDump.config(enable, period, user_flag, custom_id, host, port) 配置服務(wù)器地址和周期(默認600 秒)。上報成功后,本地日志自動(dòng)清空。

2)手動(dòng)讀取

使用errDump.dump(zbuff, type, isDelete) 讀取日志,支持指定類(lèi)型(如系統日志、用戶(hù)日志)并選擇是否刪除。

3)自定義傳輸
 

禁用自動(dòng)上報后,用戶(hù)可通過(guò)errDump.dump() 獲取日志內容,再通過(guò)MQTT、HTTP API等方式發(fā)送到自有服務(wù)器。


1.5 日志清除機制

1)自動(dòng)清除:設置自動(dòng)模式的話(huà),上報到服務(wù)器成功后,本地日志自動(dòng)刪除。

2)手動(dòng)清除:設置手動(dòng)讀取模組,調用errDump.dump(nil, type, true) 指定日志類(lèi)型并刪除。

3)覆蓋策略:系統/用戶(hù)日志達到4KB時(shí),新寫(xiě)入內容覆蓋舊數據。

 


二、 Air8101開(kāi)發(fā)板errDump示例


下文以Air8101開(kāi)發(fā)板為例,演示errdump日志上報功能實(shí)操要點(diǎn)。

最新源碼及實(shí)操教程詳見(jiàn):https://docs.openluat.com/air8101/luatos/app/base/errdump/

主要示例代碼如下:

 

1)main.lua

 

2)errdump_test.lua

本功能模塊為:使用自動(dòng)上報異常日志到iot平臺。


3)errdump_uart.lua

本功能模塊為:使用手動(dòng)讀取異常日志并通過(guò)串口傳出。


4)errdump_tcp.lua

本功能模塊為:手動(dòng)讀取異常日志上傳到自己平臺。

 

三、errDump實(shí)操驗證 

3.1 自動(dòng)上傳IoT平臺

云平臺:iot.openluat.com


1)登錄IoT平臺

手機號為賬號,默認密碼888888,創(chuàng )建一個(gè)IoT賬號。

用這個(gè)賬號即可登錄IoT平臺,將Air8101的sta mac歸屬到此賬號名下。


2)新建一個(gè)項目


3)將你自己建的項目key復制到demo中


4)打開(kāi)設備DEBUG開(kāi)關(guān)

特別注意:使用IoT云服務(wù)器時(shí),迫于服務(wù)器壓力,只有手動(dòng)打開(kāi)debug開(kāi)關(guān),才會(huì )有日志上報。


5)LuaTools日志打印


6)云平臺查看錯誤上報


3.2 手動(dòng)讀取通過(guò)串口上傳功能驗證

手動(dòng)讀取系統異常日志和用戶(hù)自定義消息,并通過(guò)串口輸出。


1)LuaTools日志打印


2)串口打印異常日志


3.3 手動(dòng)讀取通過(guò)TCP上傳功能驗證

手動(dòng)讀取系統異常日志和用戶(hù)自定義消息,并通過(guò)TCP協(xié)議上報到服務(wù)器中。

本文使用TCP服務(wù)器來(lái)演示: https://netlab.luatos.com/


1)啟動(dòng)TCP服務(wù)器

啟動(dòng)TCP服務(wù)器并修改demo中的IP和端口號:


2)LuaTools日志打印


3)服務(wù)器日志打印


今天的內容就分享到這里了~

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
返回頂部
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页