SylixOS 調試方法詳解——靜態代碼分析

1. SylixOS調試方法介紹

SylixOS 實現了一個功能強大的調試 stub,可在設備或模擬器上在線調試應用程序,RealEvo-IDE 也提供配套的調試插件。目前 RealEvo-IDE 既支持自動推送調試、也支持傳統的手動啓動 gdbserver 的調試方式。在官方公佈的使用手冊中沒有詳細寫出在日常開發中非常實用的幾種調試方式,我們通過新建幾個App工程來做相應的演示,主要有代碼靜態分析、代碼覆蓋率檢查、性能分析以及一個實戰案列的演示,本文主要介紹代碼靜態分析調試。

2. SylixOS調試步驟詳解

代碼靜態分析主要用來檢查野指針、數組越界等問題,我們建立一個static_check_app,用來做代碼靜態分析的演示,程序清單如程序清單 21所示。

程序清單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所示,開發人員在開發過程中經常會出現這類問題,當代碼量較大時,人工覈查工作量太大,準確率也沒法得到保障。在編譯過程中也不會發現這些錯誤,而這些錯誤會大大降低代碼質量和安全,我們通過代碼靜態分析可以有效規避這些問題。

wKioL1loL-jRG5KEAACdpPUBDpo431.png

21  編譯結果

 

   選中需要調試的工程,這裏選擇“static_check_app”工程,右擊工程選擇“SylixOS Code StaticAnalysis”,點擊“Run CodeStatic Analysis” 或者使用快捷鍵“Ctrl+Shift+C”,操作如 22所示。

wKioL1loL9rxH6QtAAILzZeSu1E464.png

22  操作步驟

 

運行結果如 23所示,第1114行分別顯示數組越界和野指針錯誤。

wKiom1loL_2BMlo5AAKF_BIuV_A108.png

23  靜態代碼分析結果

檢查完成後,選中需要調試的工程,這裏選擇“static_check_app”工程,右擊工程選擇“SylixOS Code Static Analysis”,點擊“ClerMarks”,或者使用快捷鍵“Ctrl+Alt+M”,運行結果如 24所示,第1114行錯誤提示被清除了,爲下次檢查時提供新的材料模板。wKioL1loMBiy7EOnAABvY_i9hQ8164.png

24  清除錯誤提示信息

 

3. 總結

SylixOS中我們可以使用多種調試方式進行相關調試,我們可以根據實際情況對程序進行調試,本節主要介紹代碼靜態檢查的具體調試方式,下一節將詳細介紹代碼覆蓋率分析調試。

4. 參考資料

SylixOS應用程序開發手冊》

RealEvo-IDE使用手冊》

 

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章