




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
圖5.1.4調用關系圖工程向導得到manifest.xml文件(兩種途徑:從服務器獲得或從本地文件系統獲得)、用戶工程的模板文件以及可選庫文件后,解析manifest.xml文件。依據Eclipse工程項目規(guī)范建立工程,并將模板文件及庫文件拷貝到Eclipseworkspace下,若模板文件中存在擴展點,向導將擴展程序添加到擴展點,同時根據環(huán)境變量讀取系統庫文件并添加到工程屬性中。最終在IDE視圖、編輯器中顯示完整工程。5.2代碼分析模塊5.2.1動態(tài)代碼分析1.結構框圖Gprof(統計分析)Gprof(統計分析)GCC模塊(編譯模塊)(Gprof_out)輸出模塊(GUI提供)跳轉模塊源代碼輸出模塊輸入模塊圖5.2.1動態(tài)代碼分析模塊組成結構圖動態(tài)分析模塊中各子功能塊的功能作用說明:輸入模塊,完成動態(tài)模塊輸入參數的接受和發(fā)送,接受待分析代碼的路徑和文件,用戶設置和選擇參數。GCC模塊完成對目標代碼文件的動態(tài)編譯,為動態(tài)性能分析做準備。(3)Gprof模塊Gprof模塊則完成代碼的統計分析,并生成相應的Gmon.out動態(tài)性能數據文件,Gmon.out文件包含代碼動態(tài)分析數據結果。然后Gprof對性能數據文件的解析,并從數據文件中析取出所需的性能統計數據。(4)(Gprof_out)輸出模塊接受從Gprof模塊析取出的數據,經本模塊處理后完成對工程中各源文件中各個函數塊運行時間的柱狀化圖形輸出及運行次數輸出。跳轉模塊跳轉模塊主要完成從用戶柱狀輸出跳轉到對應的源代碼中對應函數的定義處的跳轉定位功能。(6)源代碼輸出模塊完成選中文件源代碼的文件跳轉輸出。2.流程圖輸入模塊輸入模塊GCCGprof圖形輸出模塊結束是否輸入文件輸入模塊圖形輸出跳轉模塊圖形輸出輸入模塊Y文本輸出模塊N開始圖5.2.2動態(tài)代碼分析流程圖3.調用關系圖圖形輸出模塊圖形輸出模塊Gprof模塊GCC模塊輸入模塊文本輸出模塊跳轉模塊圖5.2.3動態(tài)代碼分析調用關系圖5.2.2靜態(tài)代碼分析1.結構框圖5.2.4靜態(tài)代碼分析總體設計圖通過靜態(tài)代碼分析的用戶接口,用戶可選擇查看函數關系調用圖和對代碼質量進行量度。函數調用關系樹狀圖是通過graphviz畫出樹狀圖,這個樹狀圖是由calltree分析得來。cppcheck分析工程文件,將得到的警告信息反饋給用戶。函數調用關系圖流程:從用戶所給的工程的頭文件及源文件目錄,得到-I選項;利用calltree–gb–m的參數獲得字符界面的函數調用關系;進一步生成.dot文件;再利用graphviz畫出樹狀的函數調用圖。圖5.2.5靜態(tài)代碼分析流程圖代碼檢測流程:獲得用戶所給的工程的頭文件及源文件目錄,得到-I選項;利用cppcheck-a的參數獲得程序中存在的一些警告信息;將警告信息展現給用戶。5.2.3用戶接口1.靜態(tài)分析接口1)用戶接口函數關系調用圖 接口名稱接口標記實現功能工程頭文件所在目錄頭文件路徑(-I)用來指定要分析的頭文件的路徑工程源文件所在目錄源文件路徑從該目錄下獲得所有要分析的源文件工程頭文件所在目錄:建議把工程頭文件統一放在一個目錄下,如Include。工程源文件所在目錄:建議將要分析的工程的源文件放在一個目錄下,如Src。注:只分析c語言編寫的工程文件。用戶還可以通過瀏覽按鈕選擇某個工程文件所在的目錄。當用戶選擇代碼質量量度時,出現如下對話框。接口名稱接口標記實現功能變量沒有初始化uninitialized檢測聲明但沒有賦初值的變量==和=誤用parentheses檢測條件語句中常見的==和=誤用問題可能的緩沖區(qū)溢出Overbuffer檢測程序中可能的緩沖區(qū)溢出問題從空指針讀值Nullpointer檢測程序中讀取空指針的情況內存泄露Memoryleak檢測程序中的分配內存后未釋放的問題變量沒有初始化:如inta;//a沒有賦初值==和=無用:如if(a=5)printf(“….”)可能的緩沖區(qū)溢出:如chara[10],…a[10]=’v’從空指針讀值:如char*p=”abcdefg”;….free(p);…..printf(“%s\n”,p)內存泄露:如char*a=(char*)malloc(sizeof(char)*10);….程序結束時卻沒有free(a)用戶可選擇要檢測的項目(建議全選)。2)外部接口(1)Eclipse上的calltree插件對calltree進行裁剪,選擇我們所需的功能,并把裁剪后的calltree寫成插件安裝在Eclipse上。(2)Eclipse上的cppcheck插件對cppcheck進行裁剪,選擇我們所需的功能,并把裁剪后的cppcheck寫成插件安裝在Eclipse上。(3)函數結構分析:calltree與graphviz之間的接口利用calltree工具,使用命令(calltree-I/root/Test/Include-gb–m/roo/Test/*.c>temp.c)。將得到的temp.c解析,生成合適的.dot文件:Temp.dot。用dot工具執(zhí)行命令:dot–Tpngtemp.dot-otemp.png,生成png文件的函數調用圖。(只分析c語言工程,且必須包含定義main函數的文件)。(4)代碼質量量度:gcc/g++的-Wuninitialized:自動變量沒有初始(必須與-O一起使用);gcc/g++的-Wparentheses:==和=誤用;cppcheck檢測c/c++程序中存在的內存泄露及看、可能的堆棧溢出、讀空指針。2.動態(tài)代碼分析接口1)外部接口與eclipse平臺的接口:將gcc,gprof以插件的形式集成到eclipse平臺下面Start_dynamic()::在eclipse平臺下啟動動態(tài)代碼分析功能2)內部接口(1)gcc與gprof的接口:在gcc編譯的時候加參數–pg,執(zhí)行程序,生成供gprof分析的gmon.out文件。使用gprof程序分析你的應用程序生成的數據(即使用命令:gprof–ba.outgmon.out|less).gmon.out與輸出柱狀圖的接口:接口標記:Qt_gmon();//l利用qt的繪圖函數來調用gmon.out中的數據畫出柱狀圖5.3Makefile和Configure可視化配置和解析模塊Makefile和Configure可視化配置和解析模塊分成兩個子模塊,即Makefile可視化配置和解析子模塊和Configure文件可視化配置和解析子模塊。5.3.1Makefile可視化配置和解析子模塊1.流程圖Makefile可視化配置和解析子模塊的流程圖如圖5.3.1、5.3.2所示。圖5.3.1Makefile配置Makefile可視化配置:由用戶在GUI上添加或刪除規(guī)則,根據GUI上的改動改變DOM中對應的數據,然后根據DOM生成記錄構建規(guī)則的xml文件,最后使用Makefile生成器從xml生成Makefile。圖5.3.2Makefile解析Makefile可視化解析:使用Makefile分析器將Makefile轉換為xml,然后加載xml生成DOM樹,最后使用DOM數據生成GUI來顯示Makefile。2.結構圖Makefile可視化配置和解析子模塊的結構圖如圖5.3.3所示。圖5.3.3結構圖1)GUI根據DOM數據來顯示Makefile構建規(guī)則,并將用戶改動反映到DOM樹中。2)DOM樹通過加載xml文件來生成,并在用戶完成操作后重新生成xml文件。3)在生成階段,Makefile作為最終產品,通過Makefile生成器讀取xml文件來生成;在顯示階段,Makefile則由Makefile分析器轉換為xml格式供上層模塊使用。3.調用關系圖Makefile可視化配置和解析子模塊的結構圖如圖5.3.4所示。圖5.3.4調用關系圖GUI顯示在Makefile處理過程中轉化過的DOM數據,用戶通過GUI所作的改動也在處理之后轉化到DOM數據中;xml文件是DOM生成的依據,同時DOM中數據變化后在保存時也要更新xml文件;xml文件作為數據轉化的中介,在生成Makefile時要將xml格式的內容轉化為Makefile,在顯示Makefile時要從Makefile文件通過分析生成xml格式文件。5.3.2Configure文件可視化配置和解析子模塊1.流程圖Configure文件可視化配置和解析子模塊的流程圖如圖5.3.5、5.3.6所示。圖5.3.5Configure配置Configure配置提供GUI供用戶設置Configure,根據用戶操作改變DOM數據,將Configure設置以xml文件格式保存。圖5.3.6Configure顯示Configure解析加載xml文件生成DOM樹,根據DOM數據生成GUI顯示Configure設置。2.結構圖Configure文件可視化配置和解析子模塊的結構圖如圖5.3.7所示。圖5.3.7Configure結構框圖GUI根據DOM數據來顯示Configure設置,并將用戶改動反映到DOM樹中,DOM樹通過讀取xml文件來生成,并在改動產生之后由DOM樹重新的生成xml文件,Configure設置直接保存為xml格式。3.調用關系圖Configure文件可視化配置和解析子模塊的調用關系圖如圖5.3.8所示。圖5.3.8Configure調用關系圖GUI顯示由Configure處理過程轉化的DOM數據,用戶通過GUI所作的改動也在處理之后轉化到DOM數據中;xml文件是DOM生成的依據,同時DOM中數據變化后在保存時也要更新xml文件,Configure設置的內容以xml格式保存。5.4調試管理模塊5.4.1結構框圖1.系統硬件結構圖系統硬件結構圖如圖5.4.1所示。圖5.4.1系統硬件結構圖調試通過兩種方式實現,軟件調試和仿真器調試。軟件調試首先需要將調試主機(ICE_HOST)通過USB,網線,RS232電纜與目標板直接相連。調試主機(ICE_HOST)上的調試器與目標板上的GDBserver通信,完成調試功能。仿真調試通過ICE_server共享在線仿真器。ICE_HOST端的調試器與ICE_server連接成功后,ICE_HOST通過ICE_server控制在線仿真器(ICE)對目標板進行調試。2.系統功能結構圖系統功能結構圖如圖5.4.2所示。'圖5.4.2功能結構圖3.系統邏輯結構圖系統邏輯結構圖如圖5.4.3所示。圖5.4.3系統邏輯結構圖5.4.2接口描述1.用戶接口本系統通過GUI接供用戶與IDE交互的接口??梢苑殖扇糠郑赫{試控制:接口名稱接口標記實現功能運行run全速運行,忽略斷點單步跟蹤step_over不進入函數單步執(zhí)行每條語句單步步進step_in進入函數單步執(zhí)行單步跳出step_out跳出函數或循環(huán)繼續(xù)執(zhí)行continue從斷點處繼續(xù)執(zhí)行重新開始restart程序重新執(zhí)行,遇斷點會停下程序下載download將程序下載到目標板上斷點設置:接口名稱接口標記實現功能增加斷點break在指定行添加斷點刪除斷點clear_break刪除指定的斷點清除所有clear_all清除所有斷點顯示斷點break_info顯示所有斷點的位置和其它信息窗口設置:(變量,寄存器,內存,表達式顯示窗口)接口名稱接口標記實現功能窗口切換window_switch共享寄存器窗口,實現切換格式選擇format_select選擇數值的格式(oct,dec,hex)信息排列display_sort按名稱,出現順序等排列配置選擇:接口名稱接口標記實現功能連接設置link_mode選擇PC與目標機的連接方式(RS232,Ethernet,USB).顯示設置display_config選擇哪些窗口會出現在透視圖中2.外部接口(1)軟件接口 接口名稱接口標記實現功能啟動debugger_start在IDE開發(fā)環(huán)境中啟動調試器關閉debugger_close調試完成后,在IDE中關閉調試器(2)硬件接口接口名稱接口標記實現功能串行接口debug_RS232與目標板之間通過RS232協議通信網絡接口debug_ethernet與目標板通過以太網通信USB接口1debug_usb1與目標板通過USB通信LPT接口debut_lpt實現ICE_server與仿真器的連接USB接口2debug_usb2實現ICE_server與仿真器的連接以及網接口debug_ethernet實現調試主機與ICE_server的連接3.內部接口內部接口分成兩大部分,GUI通過GDB/MI調用GDB內核的接口,以及GDB通過RSP協議與目標板通信的接口。GDB調用接口分成3大類:指令解析,數據傳送,配置選項;接口名稱接口標記實現功能指令傳送MI_transt_inst實現GUI調試操作到GDB指令的解析數據傳送MI_transt_data實現GUI中信息與GDB中信息的交互配置選項MI_config將GUI的配置選項解析后配置到GDB通信接口:接口名稱接口標記實現功能指令傳送RSP_transt_inst實現GDB與目標板之間的指令傳送數據傳送RSP_transt_data實現GDB與目標板之間的數據傳送5.4.3調試器子模塊1.調試器子模塊流程圖調試器子模塊流程圖如圖5.4.4所示。圖5.4.4軟件調試程序流程圖可供選擇的連接模式包括RS232,USB,ethernet三種與目標板的連接方式。指令傳送是通過GDB/MI接口向GDB內核傳送調試指令,調用GDB的調試功能。數據傳送包括兩部分:主機端向目標機端的數據,包括斷點地址,變量信息等;目標機向主機端反饋的調試數據,包括斷點,變量,表達式等信息。2.結構框圖調試器子模塊結構圖如圖5.4.5所示。 圖5.4.5軟件調試模塊結構框圖5.4.4仿真器子模塊1.仿真器流程圖仿真器流程圖如圖5.4.6所示。圖5.4.6仿真調試程序流程圖仿真器申請階段,ICE_HOST端需要向ICE_server申請仿真器。ICE_server對不同ICE_HOST提出的申請進行調度和管理。如果仿真器被一個ICE_HOST占用,則ICE_server向ICE_HOST發(fā)送“不可用”的信息,通知ICE_HOST仿真器已經被占用,申請失敗。如果仿真器空閑,則返回“申請成功”的信息,ICE_HOST與ICE_server建立調試連接,獨自占有仿真器資源。2.仿真器結構框圖仿真器結構圖如圖5.4.7所示。圖5.4.7仿真調試模塊調用圖GUI模塊通過向ICE_server發(fā)送指令來調用共享調試模塊。共享調試模塊通過調用命令解釋模塊,實現調試器指令向GDB/MI接口標準的轉換,從而調用GDB/MI接口,實現調用GDB內核的功能。GDB內核再調用仿真器驅動模塊,將GDB發(fā)送的指令轉換成仿真器所能識別的指令格式。3.共享調試共享調試模塊是仿真調試模塊的一個子模塊,提供多臺計算機共享仿真器的調試方式,其流程圖如圖5.4.8所示,結構圖如圖5.4.9所示,調用關系如圖5.4.10所示,網絡結構圖如圖5.4.11所示。圖5.4.8共享調試模塊流程圖圖5.4.9共享調試模塊結構框圖圖5.4.10調用關系圖圖5.4.11網絡結構框圖5.5配置管理模塊配置管理模塊主要是把各種工具、庫統一管理起來,以方便用戶查找、使用管理。本模塊分成兩大部分:用戶對工具、庫的操作(包括用戶接口部分、導入處理、檢索處理、刪除處理等)和供其它子系統訪問支撐庫的API接口部分。它們最后都是由配置管理模塊來實現對庫的訪問。配置管理模塊應實現以下功能。1.存儲信息:將工具、庫的屬性信息提取出來,保存到支撐庫中。2.檢索文件:工具、庫列表窗口中以樹形列表方式分類顯示,分類的依據是按照其完成的功能進行分類。3.導入處理:提取工具、庫屬性信息,然后添加到支撐庫信
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年舞蹈天使測試題及答案
- 2025年上虞電工考試試題及答案
- 2025年央企經典面試題及答案
- 2025年貴陽b類考試試題及答案
- 2025年創(chuàng)新漫畫面試題及答案
- 2025年心理測試題擇偶標準及答案
- 2025年醫(yī)院消防面試試題及答案
- 2025年中醫(yī)四診考試題及答案
- 2025年記憶試題測試題及答案
- 2025年新冠防控方案試題及答案
- 寺院管理框架結構圖PPT課件
- 單考單招數學公式總結
- 三打白骨精英文話劇劇本(原創(chuàng))
- 2019第五版新版PFMEA 注塑實例
- 李雁鳴循環(huán)理論
- 火花塞的拆裝檢查ppt課件
- 釩電池項目財務數據分析(范文模板)
- 電暈水測試液配方
- 日處理300t鮮奶的脫脂奶粉生產車間
- 工業(yè)鍋爐水處理系統調試報告
- 秘書處職能手冊(完整版)74頁
評論
0/150
提交評論