SylixOS 實現了一個功能強大的調試 stub,可在設備或模擬器上在線調試應用程序,RealEvo-IDE 也提供配套的調試插件。目前 RealEvo-IDE 既支持自動推送調試、也支持傳統的手動啓動 gdbserver 的調試方式。在官方公佈的使用手冊中沒有詳細寫出在平常開發中很是實用的幾種調試方式,咱們經過新建幾個app工程來作相應的演示,主要有代碼靜態分析、代碼覆蓋率檢查、性能分析以及一個實戰案列的演示,本文主要介紹代碼覆蓋率檢查調試。架構
代碼覆蓋率檢查主要用來防止出現多餘代碼,經過創建一個「coverage_check_app」來作代碼覆蓋率檢查的演示,程序清單如程序清單 2‑1所示。app
程序清單 2‑1 static_check_app清單工具
#include <stdio.h>性能 void test()測試 {優化 printf("Hello SylixOS!\n");spa }插件
int main (int argc, char **argv)調試 {server printf("Hello SylixOS!\n");
return (0); }
|
所用demo程序編譯未報錯,可成功上傳,程序編譯結果如圖 2‑1所示,在編譯過程當中也不會發現任何錯誤,但代碼自己存在冗餘現象。一般代碼量比較小的狀況下,能夠經過人工排查的方式減小該現象,從而提升代碼質量,可是在代碼量比較大,代碼編寫人員較多時,就沒法避免這種情況,這樣會對項目週期、項目質量形成比較大的影響,也會增長測試人員的工做量。這些都不利於項目開發和工做效率的提升。
圖 2‑1 編譯結果
這種狀況下能夠經過RealEvo-IDE中自帶的代碼覆蓋率檢查工具解決這一類開發難題。
編譯上傳以後打開RealEvo-Simulator,打開對應的架構平臺,運行demo程序,如圖 2‑2所示。
圖 2‑2 運行coverage_check_app
選中須要調試的工程,這裏選擇「coverage_check_app」工程,右擊工程選擇「Properties」,點擊「SylixOS Project」,選擇「Compiler Setting 」 ,勾選「Enable govc(Code coverage analysis)」,如圖 2‑3所示。
圖 2‑3 設置調試工具
選中須要調試的工程,這裏選擇「coverage_check_app」工程,右擊工程選擇「SylixOS Coverage Analysis」,點擊「Get Coverage Rate File」,操做如圖 2‑4所示。
圖 2‑4 操做步驟
成功抓取文件,如圖 2‑5所示。
圖 2‑5 抓取成功
若不運行程序,則沒法成功抓取文件,如圖 2‑6所示。
圖 2‑6 抓取不成功
抓取完成後,選中須要調試的工程,這裏選擇「coverage_check_app」工程,右擊工程選擇「SylixOS Coverage Analysis」,點擊「Show Coverage Rate」,如圖 2‑7所示。
圖 2‑7 進行覆蓋率分析
運行結果如圖 2‑8所示,代碼存在同於現象,能夠經過分析代碼進行優化,減小這種狀況,提升代碼質量。
圖 2‑8 冗餘檢查
在SylixOS中可使用多種調試方式進行相關調試,根據實際狀況對程序進行調試,本節主要介紹代碼覆蓋率檢查的具體調試方式,下一節將詳細介紹性能分析調試。
《SylixOS應用程序開發手冊》
《RealEvo-IDE使用手冊》