SylixOS 調試方法詳解——靜態代碼分析
1. SylixOS調試方法介紹
SylixOS 實現了一個功能強大的調試 stub,可在設備或模擬器上在線調試應用程序,RealEvo-IDE 也提供配套的調試插件。目前 RealEvo-IDE 既支持自動推送調試、也支持傳統的手動啟動 gdbserver 的調試方式。在官方公布的使用手冊中沒有詳細寫出在日常開發中非常實用的幾種調試方式,我們通過新建幾個App工程來做相應的演示,主要有代碼靜態分析、代碼覆蓋率檢查、性能分析以及一個實戰案列的演示,本文主要介紹代碼靜態分析調試。
2. SylixOS調試步驟詳解
代碼靜態分析主要用來檢查野指針、數組越界等問題,我們建立一個static_check_app,用來做代碼靜態分析的演示,程序清單如
程序清單21 static_check_app清單
#include<stdio.h> intmain (intargc, char **argv) { charcBuf[10]; char *pTemp; int i; for (i=0; i<=10; i++) { cBuf[i] = 0; } printf("out put %s\n", pTemp); return (0); }
|
所用demo程序編譯未報錯,可成功上傳,程序編譯結果如圖 21所示,開發人員在開發過程中經常會出現這類問題,當代碼量較大時,人工核查工作量太大,準確率也沒法得到保障。在編譯過程中也不會發現這些錯誤,而這些錯誤會大大降低代碼質量和安全,我們通過代碼靜態分析可以有效規避這些問題。
圖 21 編譯結果
選中需要調試的工程,這裏選擇“static_check_app”工程,右擊工程選擇“SylixOS Code StaticAnalysis”,點擊“Run CodeStatic Analysis”, 或者使用快捷鍵“Ctrl+Shift+C”,操作如圖 22所示。
圖 22 操作步驟
運行結果如圖 23所示,第11和14行分別顯示數組越界和野指針錯誤。
圖 23 靜態代碼分析結果
檢查完成後,選中需要調試的工程,這裏選擇“static_check_app”工程,右擊工程選擇“SylixOS Code Static Analysis”,點擊“ClerMarks”,或者使用快捷鍵“Ctrl+Alt+M”,運行結果如圖 24所示,第11和14行錯誤提示被清除了,為下次檢查時提供新的材料模板。
圖 24 清除錯誤提示信息
3. 總結
在SylixOS中我們可以使用多種調試方式進行相關調試,我們可以根據實際情況對程序進行調試,本節主要介紹代碼靜態檢查的具體調試方式,下一節將詳細介紹代碼覆蓋率分析調試。
4. 參考資料
《SylixOS應用程序開發手冊》
《RealEvo-IDE使用手冊》
SylixOS 調試方法詳解——靜態代碼分析