SylixOS---程序代碼覆蓋率分析

程序代碼覆蓋率分析主要分爲以下幾步:

  1. 右擊需要分析的工程,選擇菜單“Properties”,選擇“SylixOS Project”下的“Compiler Setting”,在彈出的窗口中勾選“Enable gcov(Code coverage analysis)”“OK”保存設置。
    在這裏插入圖片描述
  2. 編譯程序,在工程編譯輸出目錄的 obj 文件夾下會爲被編譯的每個源文件生成“源文件名.o”“源文件名.gcno”文件。
    在這裏插入圖片描述
  3. 上傳應用程序可執行文件(本例爲“app_demo”)到目標設備並執行文件,程序退出後
    在可執行文件同級目錄下會生成 obj 目錄,該目錄中保存了每個源文件在程序執行後生成的
    “源文件名.gcda”文件。
    在這裏插入圖片描述


  4. 右擊需要分析的工程,選擇“SylixOS Coverage Analysis→Show Coverage Rate”
    至此,每個源文件在程序工程編譯輸出目錄下的 obj 文件夾中存在三個與之對應的文件,即:
    “源文件名.o”“源文件名.gcno”“源文件名.gcda”。在 gcov 標籤頁中可查看源文件代碼
    覆蓋率,雙擊列表中的行可定位到源代碼,同時在源碼文件中以不同的顏色標識各行代碼的
    執行次數。選中列表中的“app_demo.c”一行,點擊 ,選擇“Bar graph”,可以更直觀的
    查看代碼覆蓋率分析圖。
    在這裏插入圖片描述
    :如果更改了源文件,在第四步中需要先選擇“SylixOS Coverage Analysis→Get Coverage Rate File”,再選擇“SylixOS Coverage Analysis→Show Coverage Rate”






內核模塊代碼覆蓋率分析與應用程序基本一致,不一樣的是內核模塊不能被執行,需運
“modulegcov”命令生成“源文件名.gcda”文件。其操作流程如下:

  1. 模塊中添加如下代碼。
extern void __gcov_flush();
LW_SYMBOL_EXPORT void module_gcov (void)
{
   
   
__gcov_flush();
 printk("module_gcov() run!\n");
}
  1. 按照圖 7.2 設置工程,編譯並下載內核模塊文件到目標系統,註冊模塊並執行
    “modulegcov”命令,生成“源文件名.gcda”文件。
    在這裏插入圖片描述

  2. 右擊需要分析的工程,選擇“SylixOS Coverage Analysis→Show Coverage Rate”。至此,
    每個源文件會在程序工程編譯輸出目錄下的 obj 文件夾中都存在三個與之對應的文件,即:
    “源文件名.o”“源文件名.gcno”“源文件名.gcda”。選擇過工程目標文件後即可查看代
    碼覆蓋率分析結果。在 gcov 標籤頁中可查看源文件代碼覆蓋率,雙擊列表中的行
    可定位到源代碼,同時在源碼文件中以不同的顏色標識各行代碼的執行次數。選中某一行,
    點擊 ,選擇“Bar graph”,可以更直觀的查看代碼覆蓋率分析圖。
    在這裏插入圖片描述
    在這裏插入圖片描述






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