国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種嵌入式軟件測(cè)試監(jiān)控方法及系統(tǒng)的制作方法

      文檔序號(hào):6399769閱讀:251來源:國知局
      專利名稱:一種嵌入式軟件測(cè)試監(jiān)控方法及系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及嵌入式軟件測(cè)試領(lǐng)域,尤其涉及一種嵌入式軟件測(cè)試監(jiān)控方法及系統(tǒng)。
      背景技術(shù)
      嵌入式軟件是基于嵌入式系統(tǒng)設(shè)計(jì)的軟件,嵌入式軟件廣泛應(yīng)用于國防、工控、消費(fèi)電子、通信產(chǎn)業(yè)等領(lǐng)域,例如移動(dòng)電話、掌上電腦、數(shù)碼相機(jī)、機(jī)頂盒等都是用嵌入式軟件技術(shù)對(duì)傳統(tǒng)產(chǎn)品進(jìn)行智能化改造的結(jié)果。當(dāng)嵌入式軟件處于現(xiàn)場(chǎng)測(cè)試階段時(shí),例如機(jī)頂盒產(chǎn)品在研發(fā)后期,需要測(cè)試人員到現(xiàn)場(chǎng)進(jìn)行最后的定版測(cè)試,如果在測(cè)試過程中出現(xiàn)低頻率復(fù)現(xiàn)問題,而負(fù)責(zé)開發(fā)軟件的工程師不在現(xiàn)場(chǎng),只能通過現(xiàn)場(chǎng)測(cè)試人員的描述得到測(cè)試情況,現(xiàn)場(chǎng)測(cè)試人員通過電話或者郵件的方式對(duì)出現(xiàn)的問題進(jìn)行描述,又現(xiàn)場(chǎng)測(cè)試人員對(duì)被測(cè)試的軟件不熟悉,對(duì)開發(fā)軟件的內(nèi)容掌握程度不夠,在描述測(cè)試結(jié)果和測(cè)試過程中出現(xiàn)的問題時(shí)不準(zhǔn)確?,F(xiàn)有技術(shù)中通過運(yùn)行在獨(dú)立的計(jì)算機(jī)上的腳本程序?qū)崿F(xiàn)對(duì)嵌入式應(yīng)用軟件的監(jiān)測(cè),需要獨(dú)立的計(jì)算機(jī)設(shè)備,且被監(jiān)測(cè)的程序需要被動(dòng)接收監(jiān)控?cái)?shù)據(jù),終端需要主動(dòng)向腳本解釋器發(fā)送監(jiān)控?cái)?shù)據(jù),過程較復(fù)雜,步驟繁瑣,不利于研發(fā)成本的控制。

      發(fā)明內(nèi)容
      本發(fā)明實(shí)施例所要解決的技術(shù)問題在于,提供一種嵌入式軟件測(cè)試監(jiān)控方法及系統(tǒng)。可采用快照監(jiān)控模式或運(yùn)行狀態(tài)跟蹤模式監(jiān)控嵌入式軟件的測(cè)試,提高了軟件開發(fā)效率,減少了研發(fā)成本。為了解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種嵌入式軟件測(cè)試監(jiān)控方法,包括:判斷是否開啟快照監(jiān)控模式或運(yùn)行狀態(tài)跟蹤模式;若開啟快照監(jiān)控模式,則判斷當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)是否滿足預(yù)設(shè)的快照監(jiān)控時(shí)間參數(shù)閾值;如果滿足,根據(jù)所述當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)建立對(duì)應(yīng)的目標(biāo)程序快照,并保存所述目標(biāo)程序快照;若開啟運(yùn)行狀態(tài)跟蹤模式,則判斷目標(biāo)程序中是否存在滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程;如果存在,監(jiān)控所述目標(biāo)程序中滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程。其中,所述快照監(jiān)控線程的時(shí)間參數(shù)至少包括:快照監(jiān)控滯留時(shí)間和快照監(jiān)控時(shí)間間隔。其中,所述預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件包括:配置的線程名字、配置的函數(shù)名字、配置的全局變量名字中的一個(gè)或多個(gè);所述監(jiān)控所述目標(biāo)程序中滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程包括:
      如果所述目標(biāo)程序中存在與所述配置的線程名字相一致的線程,監(jiān)控所述目標(biāo)程序中與所述配置的線程名字相一致的線程;或如果所述目標(biāo)程序中存在與所述配置的函數(shù)名字相一致的線程,記錄所述配置的函數(shù)名字對(duì)應(yīng)的函數(shù)接口 ;或如果所述目標(biāo)程序中存在與所述配置的全局變量名字相一致的線程,記錄所述配置的全局變量名字對(duì)應(yīng)的變量值的變化軌跡。其中,所述判斷是否開啟快照監(jiān)控模式或運(yùn)行狀態(tài)跟蹤模式之前包括:創(chuàng)建并配置所述快照監(jiān)控線程;或創(chuàng)建并配置所述運(yùn)行狀態(tài)跟蹤線程。其中,所述監(jiān)控所述目標(biāo)程序中滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程之后包括:
      根據(jù)所述監(jiān)控結(jié)果得到運(yùn)行狀態(tài)跟蹤數(shù)據(jù),并保存所述運(yùn)行狀態(tài)跟蹤數(shù)據(jù)。相應(yīng)地,本發(fā)明實(shí)施例還提供了一種嵌入式軟件測(cè)試監(jiān)控系統(tǒng),包括:快照監(jiān)控模塊或運(yùn)行狀態(tài)跟蹤模塊,其中:所述快照監(jiān)控模塊包括:快照監(jiān)控判斷單元和快照建立單元,其中,所述快照監(jiān)控判斷單元,用于當(dāng)開啟快照監(jiān)控模式時(shí),判斷當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)是否滿足預(yù)設(shè)的快照監(jiān)控時(shí)間參數(shù)閾值;所述快照建立單元,用于當(dāng)快照監(jiān)控判斷單元判斷結(jié)果為是時(shí),根據(jù)所述當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)建立對(duì)應(yīng)的目標(biāo)程序快照,并保存所述目標(biāo)程序快照;所述運(yùn)行狀態(tài)跟蹤模塊包括:運(yùn)行狀態(tài)跟蹤條件判斷單元和運(yùn)行狀態(tài)監(jiān)控單元,其中,所述運(yùn)行狀態(tài)跟蹤條件判斷單元,用于當(dāng)開啟運(yùn)行狀態(tài)跟蹤模式時(shí),判斷目標(biāo)程序中是否存在滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程;所述運(yùn)行狀態(tài)監(jiān)控單元,用于當(dāng)所述運(yùn)行狀態(tài)跟蹤條件判斷單元判斷結(jié)果為是時(shí),監(jiān)控所述目標(biāo)程序中滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程。其中,所述快照監(jiān)控線程的時(shí)間參數(shù)至少包括:快照監(jiān)控滯留時(shí)間和快照監(jiān)控時(shí)間間隔。其中,所述預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件包括:配置的線程名字、配置的函數(shù)名字、配置的全局變量名字中的一個(gè)或多個(gè);所述運(yùn)行狀態(tài)監(jiān)控單元包括:線程監(jiān)控子單元,用于當(dāng)所述目標(biāo)程序中存在與所述配置的線程名字相一致的線程時(shí),監(jiān)控所述目標(biāo)程序中與所述配置的線程名字相一致的線程;函數(shù)接口記錄子單元,用于當(dāng)所述目標(biāo)程序中存在與所述配置的函數(shù)名字相一致的線程時(shí),記錄所述配置的函數(shù)名字對(duì)應(yīng)的函數(shù)接口 ;變化軌跡記錄子單元,用于當(dāng)所述目標(biāo)程序中存在與所述配置的全局變量名字相一致的線程時(shí),記錄所述配置的全局變量名字對(duì)應(yīng)的變量值的變化軌跡。 其中,所述快照監(jiān)控模塊還包括:快照監(jiān)控線程創(chuàng)建單元,用于創(chuàng)建并配置所述快照監(jiān)控線程;所述運(yùn)行狀態(tài)跟蹤模塊還包括:運(yùn)行狀態(tài)跟蹤線程創(chuàng)建單元,用于創(chuàng)建并配置所述運(yùn)行狀態(tài)跟蹤線程。其中,所述運(yùn)行狀態(tài)跟蹤模塊還包括:
      運(yùn)行狀態(tài)跟蹤數(shù)據(jù)存儲(chǔ)單元,用于根據(jù)所述監(jiān)控結(jié)果得到運(yùn)行狀態(tài)跟蹤數(shù)據(jù),并保存所述運(yùn)行狀態(tài)跟蹤數(shù)據(jù)。實(shí)施本發(fā)明實(shí)施例,可采用快照監(jiān)控模式或運(yùn)行狀態(tài)跟蹤模式監(jiān)控嵌入式軟件的測(cè)試,且該嵌入式軟件測(cè)試監(jiān)控系統(tǒng)可與嵌入式軟件一起運(yùn)行在同一個(gè)嵌入式設(shè)備上,還可以導(dǎo)出監(jiān)控結(jié)果數(shù)據(jù)進(jìn)而可循環(huán)復(fù)現(xiàn)測(cè)試出現(xiàn)的問題,可降低研發(fā)周期,提高了軟件開發(fā)效率,減少了研發(fā)成本。


      為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例提供的一種嵌入式軟件測(cè)試監(jiān)控系統(tǒng)的結(jié)構(gòu)示意圖;圖2是本發(fā)明實(shí)施例提供的一種嵌入式軟件測(cè)試監(jiān)控方法的流程圖;圖3是本發(fā)明實(shí)施例提供的又一種嵌入式軟件測(cè)試監(jiān)控方法的流程圖;圖4是本發(fā)明實(shí)施例提供的另一種嵌入式軟件測(cè)試監(jiān)控方法的流程圖。
      具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。請(qǐng)參閱圖1,圖1為本發(fā)明實(shí)施例提供的一種嵌入式軟件測(cè)試監(jiān)控系統(tǒng)的結(jié)構(gòu)示意圖。其中,本發(fā)明實(shí)施例提供的嵌入式軟件測(cè)試監(jiān)控系統(tǒng)可以實(shí)現(xiàn)在如機(jī)頂盒、智能手機(jī)、平板電腦、車載信息終端、導(dǎo)航儀等終端中,本發(fā)明實(shí)施例以在機(jī)頂盒上實(shí)現(xiàn)的嵌入式軟件測(cè)試監(jiān)控系統(tǒng)為例詳細(xì)論述。如圖1所示,該嵌入式軟件測(cè)試監(jiān)控系統(tǒng)至少包括快照監(jiān)控模塊101或運(yùn)行狀態(tài)跟蹤模塊102,其中:快照監(jiān)控模塊包括101:快照監(jiān)控判斷單元1011和快照建立單元1012,其中:快照監(jiān)控判斷單元1011,用于當(dāng)開啟快照監(jiān)控模式時(shí),判斷當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)是否滿足預(yù)設(shè)的快照監(jiān)控時(shí)間參數(shù)閾值。具體實(shí)現(xiàn)中,當(dāng)開啟快照監(jiān)控模式時(shí),例如可以通過語句 I “SNAPSHOR_SERVER_STATE=YES” 或語句 2 “SNAPSHOR_SERVER_STATE=N0T”來識(shí)別是否開啟快照監(jiān)控模式,語句I為開啟快照監(jiān)控模式,語句2為關(guān)閉快照監(jiān)控模式??煺毡O(jiān)控線程的時(shí)間參數(shù)至少包括:快照監(jiān)控滯留時(shí)間和快照監(jiān)控時(shí)間間隔??煺毡O(jiān)控滯留時(shí)間可以以秒為單元,可設(shè)置默認(rèn)值,例如60秒,實(shí)現(xiàn)語句例如:“Monitor_t ime=60 ”,表示會(huì)保存當(dāng)前時(shí)間的前60秒的內(nèi)存快照,用于快照恢復(fù)和與后續(xù)狀態(tài)的對(duì)比??煺毡O(jiān)控時(shí)間間隔可以以秒為單位,可設(shè)置默認(rèn)值,例如30秒,實(shí)現(xiàn)語句例如:“Monitor_time_gap=30”,表示每隔30秒進(jìn)行一次快照建立。預(yù)設(shè)的快照監(jiān)控時(shí)間參數(shù)閾值,例如預(yù)設(shè)的快照監(jiān)控滯留時(shí)間為60秒(“Monitor_time=60 ”)、預(yù)設(shè)的快照監(jiān)控時(shí)間間隔為30秒(“Monitor_time_gap=30”)等,判斷當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)是否滿足預(yù)設(shè)的快照監(jiān)控時(shí)間參數(shù)閾值,例如,在嵌入式軟件測(cè)試過程中,在時(shí)間點(diǎn)I停止測(cè)試,則保存時(shí)間點(diǎn)I前60秒的內(nèi)存快照;在嵌入式軟件測(cè)試過程中,判斷當(dāng)前的快照監(jiān)控時(shí)間間隔是否滿足30秒。快照(Snapshot)是指定數(shù)據(jù)集合的一個(gè)完全可用拷貝,該拷貝包括相應(yīng)數(shù)據(jù)在某個(gè)時(shí)間點(diǎn)(拷貝開始的時(shí)間點(diǎn))的映像??煺盏淖饔弥饕?能進(jìn)行在線數(shù)據(jù)備份與恢復(fù)。當(dāng)存儲(chǔ)設(shè)備發(fā)生應(yīng)用故障或者文件損壞時(shí)可以進(jìn)行快速的數(shù)據(jù)恢復(fù),將數(shù)據(jù)恢復(fù)某個(gè)可用的時(shí)間點(diǎn)的狀態(tài);為存儲(chǔ)用戶提供另一個(gè)數(shù)據(jù)訪問通道,當(dāng)原數(shù)據(jù)進(jìn)行在線應(yīng)用處理時(shí),用戶可以訪問快照數(shù)據(jù),還可以利用快照進(jìn)行測(cè)試等工作。快照建立單元1012,用于當(dāng)快照監(jiān)控判斷單元1011判斷結(jié)果為是時(shí),根據(jù)所述當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)建立對(duì)應(yīng)的目標(biāo)程序快照,并保存所述目標(biāo)程序快照。具體實(shí)現(xiàn)中,如果當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)滿足預(yù)設(shè)的快照監(jiān)控時(shí)間參數(shù)閾值,建立目標(biāo)程序快照,即每隔30秒建立目標(biāo)程序快照,并保存該目標(biāo)程序快照到指定目錄中,例如可以通過語句:“Monitor_save_path=./”實(shí)現(xiàn)保存該目標(biāo)程序快照到指定目錄中。當(dāng)保存目標(biāo)程序快照時(shí),會(huì)更新原目標(biāo)程序快照,即刪除原目標(biāo)程序快照,循環(huán)保存新建立的目標(biāo)程序快照,在目錄里只存在一個(gè)目標(biāo)程序快照。進(jìn)而,可以將目標(biāo)程序快照通過串口網(wǎng)線或USB (Universal Serial BUS,通用串行總線)設(shè)備導(dǎo)出,可進(jìn)行測(cè)試數(shù)據(jù)的備份與恢復(fù)。進(jìn)一步可選的,本發(fā)明實(shí)施例中的快照監(jiān)控模塊101還可以包括快照監(jiān)控線程創(chuàng)建單元1013,其中:快照監(jiān)控線程創(chuàng)建單元1013,用于創(chuàng)建并配置所述快照監(jiān)控線程。具體實(shí)現(xiàn)中,在開啟快照監(jiān)控模式前,快照監(jiān)控線程創(chuàng)建單元1013創(chuàng)建并配置快照監(jiān)控線程,例如創(chuàng)建并配置一個(gè)Snapsh0t_Server線程,其中,配置快照監(jiān)控線程可以包括:配置預(yù)設(shè)的快照監(jiān)控時(shí)間參數(shù)閾值。運(yùn)行狀態(tài)跟蹤模塊102包括:運(yùn)行狀態(tài)跟蹤條件判斷單元1021和運(yùn)行狀態(tài)監(jiān)控單元1022,其中:運(yùn)行狀態(tài)跟蹤條件判斷單元1021,用于當(dāng)開啟運(yùn)行狀態(tài)跟蹤模式時(shí),判斷目標(biāo)程序中是否存在滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程。具體實(shí)現(xiàn)中,當(dāng)開啟運(yùn)行狀態(tài)跟蹤模式時(shí),例如,可以通過語句 3 “M0NIT0R_SERVER_STATE=YES” 或語句 4 “M0NIT0R_SERVER_STATE=N0T”來識(shí)別是否開啟運(yùn)行狀態(tài)跟蹤模式,語句3為開啟運(yùn)行狀態(tài)跟蹤模式,語句4為關(guān)閉運(yùn)行狀態(tài)跟蹤模式。預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件包括:配置的線程名字、配置的函數(shù)名字、配置的全局變量名字中的一個(gè)或多個(gè)。判斷目標(biāo)程序中是否存在滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程至少可以包括:判斷目標(biāo)程序中是否存在與配置的線程名字相一致的線程;或判斷目標(biāo)程序中是否存在與配置的函數(shù)名字相一致的線程;或判斷目標(biāo)程序中是否存在與配置的全局變量名字相一致的線程。例如:判斷目標(biāo)程序中是否存在與配置的線程名字相一致的線程,實(shí)現(xiàn)語句例如:“M0nit0r_thread_names=”””,如果實(shí)現(xiàn)語句中無配置的線程名字則默認(rèn)為不監(jiān)控,配置值為ALL時(shí)表示全部監(jiān)控;判斷目標(biāo)程序中是否存在與配置的函數(shù)名字相一致的線程,實(shí)現(xiàn)語句例如:“Monitor_function_names=”””,如果實(shí)現(xiàn)語句中無配置的函數(shù)名字則默認(rèn)為不監(jiān)控,配置值為ALL時(shí)表示全部監(jiān)控;判斷目標(biāo)程序中是否存在與配置的全局變量名字相一致的線程,實(shí)現(xiàn)語句例如:“Monitor_variable_names=”””,如果實(shí)現(xiàn)語句中無配置的全局變量名字則默認(rèn)為不監(jiān)控,配置值為ALL時(shí)表示全部監(jiān)控。其中,判斷目標(biāo)程序中是否存在與配置的線程名字相一致的線程、判斷目標(biāo)程序中是否存在與配置的函數(shù)名字相一致的線程或判斷目標(biāo)程序中是否存在與配置的全局變量名字相一致的線程,以上三個(gè)判斷可以獨(dú)立運(yùn)行,也可以同時(shí)運(yùn)行任意兩個(gè)判斷,也可以同時(shí)運(yùn)行三個(gè)判斷。運(yùn)行狀態(tài)監(jiān)控單元1022,用于當(dāng)所述運(yùn)行狀態(tài)跟蹤條件判斷單元1021判斷結(jié)果為是時(shí),監(jiān)控所述目標(biāo)程序中滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程。具體實(shí)現(xiàn)中,當(dāng)目標(biāo)程序中存在滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程時(shí),監(jiān)控目標(biāo)程序中滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程。進(jìn)一步可選的,運(yùn)行狀態(tài)監(jiān)控單元1022可以包括:線程監(jiān)控子單元、函數(shù)接口記錄子單元或變化軌跡記錄子單元,其中:線程監(jiān)控子單元,用于當(dāng)所述目標(biāo)程序中存在與所述配置的線程名字相一致的線程時(shí),監(jiān)控所述目標(biāo)程序中與所述配置的線程名字相一致的線程。函數(shù)接口記錄子單元,用于當(dāng)所述目標(biāo)程序中存在與所述配置的函數(shù)名字相一致的線程時(shí),記錄所述配置的函數(shù)名字對(duì)應(yīng)的函數(shù)接口。具體實(shí)現(xiàn)中,通過檢測(cè)程序計(jì)數(shù)器,以線程為分類,把每個(gè)線程中與配置的函數(shù)名字對(duì)應(yīng)的函數(shù)接口的調(diào)用軌跡以樹形結(jié)構(gòu)記錄下來。變化軌跡記錄子單元,用于當(dāng)所述目標(biāo)程序中存在與所述配置的全局變量名字相一致的線程時(shí),記錄所述配置的全局變量名字對(duì)應(yīng)的變量值的變化軌跡。進(jìn)一步可選的,本發(fā)明實(shí)施例中的運(yùn)行狀態(tài)跟蹤模塊102還可以包括運(yùn)行狀態(tài)跟蹤線程創(chuàng)建單元1023和運(yùn)行狀態(tài)跟蹤數(shù)據(jù)存儲(chǔ)單元1024,其中:運(yùn)行狀態(tài)跟蹤線程創(chuàng)建單元1023,用于創(chuàng)建并配置所述運(yùn)行狀態(tài)跟蹤線程。具體實(shí)現(xiàn)中,在開啟運(yùn)行狀態(tài)跟蹤模式前,運(yùn)行狀態(tài)跟蹤線程創(chuàng)建單元1023創(chuàng)建并配置運(yùn)行狀態(tài)跟蹤線程,例如創(chuàng)建并 配置一個(gè)MonitOT^Server線程,其中,配置運(yùn)行狀態(tài)跟蹤線程可以包括:配置預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件。運(yùn)行狀態(tài)跟蹤數(shù)據(jù)存儲(chǔ)單元1024,用于根據(jù)所述監(jiān)控結(jié)果得到運(yùn)行狀態(tài)跟蹤數(shù)據(jù),并保存所述運(yùn)行狀態(tài)跟蹤數(shù)據(jù)。具體實(shí)現(xiàn)中,根據(jù)運(yùn)行狀態(tài)監(jiān)控單元1022的監(jiān)控結(jié)果得到運(yùn)行狀態(tài)跟蹤數(shù)據(jù),將運(yùn)行狀態(tài)跟蹤數(shù)據(jù)保存到指定目錄中,例如可以通過語句:“Monitor_save_path=./”實(shí)現(xiàn)。進(jìn)一步可選的,可以根據(jù)語句“Monitor_time_gap= M”(M為具體配置的時(shí)間值,例如30秒、60秒等)實(shí)現(xiàn)按照一定的時(shí)間間隔追加保存運(yùn)行狀態(tài)跟蹤數(shù)據(jù)到指定目錄中。進(jìn)一步可選的,本發(fā)明實(shí)施例的嵌入式軟件測(cè)試監(jiān)控系統(tǒng),可以只開啟快照監(jiān)控模式,也可以只開啟運(yùn)行狀態(tài)跟蹤模式,還可以同時(shí)開啟快照監(jiān)控模式和運(yùn)行狀態(tài)跟蹤模式。通過實(shí)施本發(fā)明實(shí)施例提供的一種嵌入式軟件測(cè)試監(jiān)控系統(tǒng),可采用快照監(jiān)控模式或運(yùn)行狀態(tài)跟蹤模式監(jiān)控嵌入式軟件的測(cè)試,且該嵌入式軟件測(cè)試監(jiān)控系統(tǒng)可與嵌入式軟件一起運(yùn)行在同一個(gè)嵌入式設(shè)備上,還可以導(dǎo)出監(jiān)控結(jié)果數(shù)據(jù)進(jìn)而可循環(huán)復(fù)現(xiàn)測(cè)試出現(xiàn)的問題,可降低研發(fā)周期,提高了軟件開發(fā)效率,減少了研發(fā)成本。下面闡述本發(fā)明實(shí)施例提供的嵌入式軟件測(cè)試監(jiān)控方法的具體實(shí)現(xiàn)。圖2是本發(fā)明實(shí)施例中一種嵌入式軟件測(cè)試監(jiān)控方法的流程圖,如圖2所示嵌入式軟件測(cè)試監(jiān)控方法至少包括:
      步驟S201,判斷是否開啟快照監(jiān)控模式,如果是,執(zhí)行步驟S204,如果否,執(zhí)行步驟S203。具體實(shí)現(xiàn)中,判斷是否開啟快照監(jiān)控模式可以通過具體的執(zhí)行語句來判斷,例如,語句 I “SNAPSHOR_SERVER_STATE=YES”表示開啟快照監(jiān)控模式,語句 2 “SNAPSHOR_SERVER_STATE=N0T ”表示關(guān)閉快照監(jiān)控模式。步驟S202,判斷是否開啟運(yùn)行狀態(tài)跟蹤模式,如果是,執(zhí)行步驟S206,如果否,執(zhí)行步驟S203。具體實(shí)現(xiàn)中,判斷是否開啟運(yùn)行狀態(tài)跟蹤模式可以通過具體的執(zhí)行語句來判斷,例如,語句3 “M0NIT0R_SERVER_STATE=YES ”表示開啟運(yùn)行狀態(tài)跟蹤模式,語句4 “M0NIT0R_SERVER_STATE=N0T”表示關(guān)閉運(yùn)行狀態(tài)跟蹤模式。在本發(fā)明實(shí)施例中,上述步驟S201、步驟S202沒有先后順序之分,可以同時(shí)進(jìn)行,也可只執(zhí)行任意一個(gè)步驟。步驟S203,運(yùn)行目標(biāo)程序。具體實(shí)現(xiàn)中,在嵌入式系統(tǒng)測(cè)試過程中,當(dāng)確定快照監(jiān)控模式或運(yùn)行狀態(tài)跟蹤模式中任一個(gè)模式關(guān)閉或兩個(gè)模式都關(guān)閉時(shí),運(yùn)行目標(biāo)程序。步驟S204,判斷當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)是否滿足預(yù)設(shè)的快照監(jiān)控時(shí)間參數(shù)閾值,判斷結(jié)果為是時(shí),執(zhí)行步驟S205,判斷結(jié)果為否時(shí),返回步驟S204。具體實(shí)現(xiàn)中,快照監(jiān)控線程的時(shí)間參數(shù)至少包括:快照監(jiān)控滯留時(shí)間和快照監(jiān)控時(shí)間間隔,預(yù)設(shè)的快照監(jiān)控時(shí)間參數(shù)閾值,例如預(yù)設(shè)的快照監(jiān)控滯留時(shí)間為60秒(實(shí)現(xiàn)語句例如:“Monitor_time=60”)、預(yù)設(shè)的快照監(jiān)控時(shí)間間隔為30秒(實(shí)現(xiàn)語句例如:“Monitor_time_gap=30”)等,判斷當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)是否滿足預(yù)設(shè)的快照監(jiān)控時(shí)間參數(shù)閾值,例如,在嵌入式軟件測(cè)試過程中,在時(shí)間點(diǎn)I停止測(cè)試,則保存時(shí)間點(diǎn)I前60秒的內(nèi)存快照;在嵌入式軟件測(cè)試過程中,判斷當(dāng)前的快照監(jiān)控時(shí)間間隔是否滿足30秒。快照的作用主要有:能進(jìn)行在線數(shù)據(jù)備份與恢復(fù),還可以利用快照進(jìn)行測(cè)試等工作。步驟S205,根據(jù)所述當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)建立對(duì)應(yīng)的目標(biāo)程序快照,并保存所述目標(biāo)程序快照。具體實(shí)現(xiàn)中,如果當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)滿足預(yù)設(shè)的快照監(jiān)控時(shí)間參數(shù)閾值,建立目標(biāo)程序快照,即每隔30秒建立目標(biāo)程序快照,并保存該目標(biāo)程序快照到指定目錄中,例如可以通過語句:“Monitor_save_path=./”實(shí)現(xiàn)保存該目標(biāo)程序快照到指定目錄中。當(dāng)保存目標(biāo)程序快照時(shí),會(huì)更新原目標(biāo)程序快照,即刪除原目標(biāo)程序快照,循環(huán)保存新建立的目標(biāo)程序快照,在目錄里只存在一個(gè)目標(biāo)程序快照。進(jìn)而,可以將目標(biāo)程序快照通過串口網(wǎng)線或USB設(shè)備導(dǎo)出,可進(jìn)行測(cè)試數(shù)據(jù)的備份與恢復(fù)。步驟S206,判斷目標(biāo)程序中是否存在滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程判斷結(jié)果為是時(shí),執(zhí)行步驟S207,判斷結(jié)果為否時(shí),返回步驟S206。具體實(shí)現(xiàn)中,預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件包括:配置的線程名字、配置的函數(shù)名字、配置的全局變量名字中的一個(gè)或多個(gè)。判斷目標(biāo)程序中是否存在滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程至少可以包括:判斷目標(biāo)程序中是否存在與配置的線程名字相一致的線程;或判斷目標(biāo)程序中是否存在與配置的函數(shù)名字相一致的線程;或判斷目標(biāo)程序中是否存在與配置的全局變量名字相一致的線程。其中,判斷目標(biāo)程序中是否存在與配置的線程名字相一致的線程、判斷目標(biāo)程序中是否存在與配置的函數(shù)名字相一致的線程或判斷目標(biāo)程序中是否存在與配置的全局變量名字相一致的線程,以上三個(gè)判斷可以獨(dú)立執(zhí)行,也可以同時(shí)執(zhí)行任意兩個(gè),也可以同時(shí)執(zhí)行三個(gè)。步驟S207,監(jiān)控所述目標(biāo)程序中滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程。具體實(shí)現(xiàn)中,當(dāng)目標(biāo)程序中存在滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程時(shí),監(jiān)控目標(biāo)程序中滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程。進(jìn)一步可選的,監(jiān)控目標(biāo)程序中滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程可以包括:當(dāng)所述目標(biāo)程序中存在與所述配置的線程名字相一致的線程時(shí),監(jiān)控所述目標(biāo)程序中與所述配置的線程名字相一致的線程;當(dāng)所述目標(biāo)程序中存在與所述配置的函數(shù)名字相一致的線程時(shí),記錄所述配置的函數(shù)名字對(duì)應(yīng)的函數(shù)接口 ;當(dāng)所述目標(biāo)程序中存在與所述配置的全局變量名字相一致的線程時(shí),記錄所述配置的全局變量名字對(duì)應(yīng)的變量值的變化軌跡。本發(fā)明實(shí)施例中一種嵌入式軟件測(cè)試監(jiān)控方法,可采用快照監(jiān)控模式或運(yùn)行狀態(tài)跟蹤模式監(jiān)控嵌入式軟件的測(cè)試,提高了軟件開發(fā)效率,減少了研發(fā)成本。如圖3是本發(fā)明實(shí)施例中嵌入式軟件測(cè)試監(jiān)控方法的又一流程圖,則該發(fā)明嵌入式軟件測(cè)試監(jiān)控方法至少可以包括:步驟S301,創(chuàng)建并配置快照監(jiān)控線程。具體實(shí)現(xiàn)中,在開啟快照監(jiān)控模式前,創(chuàng)建并配置快照監(jiān)控線程,例如創(chuàng)建并配置一個(gè)SnapShot_Server線程,其中,配置快照監(jiān)控線程可以包括:配置預(yù)設(shè)的快照監(jiān)控時(shí)間參數(shù)閾值。步驟S302,判斷當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)是否滿足預(yù)設(shè)的快照監(jiān)控時(shí)間參數(shù)閾值,判斷結(jié)果為是時(shí),執(zhí)行步驟S303,判斷結(jié)果為否時(shí),返回步驟S302。具體實(shí)現(xiàn)中,快照監(jiān)控線程的時(shí)間參數(shù)至少包括:快照監(jiān)控滯留時(shí)間和快照監(jiān)控時(shí)間間隔??煺毡O(jiān)控滯留時(shí)間可以以秒為單元,可設(shè)置默認(rèn)值,例如60秒,實(shí)現(xiàn)語句例如:“MOnitOr_time=60”,表示會(huì)保存當(dāng)前時(shí)間的前60秒的內(nèi)存快照,用于快照恢復(fù)和與后續(xù)狀態(tài)的對(duì)比??煺毡O(jiān)控時(shí)間間隔可以以秒為單位,可設(shè)置默認(rèn)值,例如30秒,實(shí)現(xiàn)語句例如:“MOnitOr_time_gap=30”,表示每隔30秒進(jìn)行一次快照建立。預(yù)設(shè)的快照監(jiān)控時(shí)間參數(shù)閾值,例如預(yù)設(shè)的快照監(jiān)控滯留時(shí)間為60秒(“Monitor_time=60”)、預(yù)設(shè)的快照監(jiān)控時(shí)間間隔為30秒(“Monitor_time_gap=30”)等,判斷當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)是否滿足預(yù)設(shè)的快照監(jiān)控時(shí)間參數(shù)閾值,例如,在嵌入式軟件測(cè)試過程中,在時(shí)間點(diǎn)I停止測(cè)試,則保存時(shí)間點(diǎn)I前60秒的內(nèi)存快照;在嵌入式軟件測(cè)試過程中,判斷當(dāng)前的快照監(jiān)控時(shí)間間隔是否滿足30秒??煺帐侵付〝?shù)據(jù)集合的一個(gè)完全可用拷貝,該拷貝包括相應(yīng)數(shù)據(jù)在某個(gè)時(shí)間點(diǎn)(拷貝開始的時(shí)間點(diǎn))的映像??煺盏淖饔弥饕?能進(jìn)行在線數(shù)據(jù)備份與恢復(fù)。當(dāng)存儲(chǔ)設(shè)備發(fā)生應(yīng)用故障或者文件損壞時(shí)可以進(jìn)行快速的數(shù)據(jù)恢復(fù),將數(shù)據(jù)恢復(fù)某個(gè)可用的時(shí)間點(diǎn)的狀態(tài);為存儲(chǔ)用戶提供另一個(gè)數(shù)據(jù)訪問通道,當(dāng)原數(shù)據(jù)進(jìn)行在線應(yīng)用處理時(shí),用戶可以訪問快照數(shù)據(jù),還可以利用快照進(jìn)行測(cè)試等工作。步驟S303,根據(jù)所述當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)建立對(duì)應(yīng)的目標(biāo)程序快照,并保存所述目標(biāo)程序快照。具體實(shí)現(xiàn)中,如果當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)滿足預(yù)設(shè)的快照監(jiān)控時(shí)間參數(shù)閾值,建立目標(biāo)程序快照,即每隔30秒建立目標(biāo)程序快照,并保存該目標(biāo)程序快照到指定目錄中,例如可以通過語句:“Monitor_save_path=./”實(shí)現(xiàn)保存該目標(biāo)程序快照到指定目錄中。當(dāng)保存目標(biāo)程序快照時(shí),會(huì)更新原目標(biāo)程序快照,即刪除原目標(biāo)程序快照,循環(huán)保存新建立的目標(biāo)程序快照,在目錄里只存在一個(gè)目標(biāo)程序快照。進(jìn)而,可以將目標(biāo)程序快照通過串口網(wǎng)線或USB設(shè)備導(dǎo)出,可進(jìn)行測(cè)試數(shù)據(jù)的備份與恢復(fù)。本發(fā)明實(shí)施例中一種嵌入式軟件測(cè)試監(jiān)控方法,采用快照監(jiān)控模式監(jiān)控嵌入式軟件的測(cè)試,可定時(shí)建立并保存目標(biāo)程序快照,從而可根據(jù)目標(biāo)程序快照恢復(fù)現(xiàn)場(chǎng)測(cè)試及對(duì)比前后測(cè)試狀態(tài),且該嵌入式軟件測(cè)試監(jiān)控系統(tǒng)可與嵌入式軟件一起運(yùn)行在同一個(gè)嵌入式設(shè)備上,可降低研發(fā)周期,提高了軟件開發(fā)效率,減少了研發(fā)成本。如圖4是本發(fā)明實(shí)施例中嵌入式軟件測(cè)試監(jiān)控方法的另一流程圖,則該發(fā)明嵌入式軟件測(cè)試監(jiān)控方法至少可以包括:步驟S401,創(chuàng)建并配置運(yùn)行狀態(tài)跟蹤線程。具體實(shí)現(xiàn)中,在開啟運(yùn)行狀態(tài)跟蹤模式前,創(chuàng)建并配置運(yùn)行狀態(tài)跟蹤線程,例如創(chuàng)建并配置一個(gè)MonitoLServer線程,其中,配置運(yùn)行狀態(tài)跟蹤線程可以包括:配置預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件。步驟S402,判斷所述目標(biāo)程序中是否存在與所述配置的線程名字相一致的線程,判斷結(jié)果為是時(shí),執(zhí)行步驟S403,判斷結(jié)果為否時(shí),返回步驟S402。具體實(shí)現(xiàn)中,判斷目標(biāo)程序中是否存在與配置的線程名字相一致的線程,實(shí)現(xiàn)語句例如:“Monitor_thread_names=”””,如果實(shí)現(xiàn)語句中無配置的線程名字則默認(rèn)為不監(jiān)控,配置值為ALL時(shí)表示全部監(jiān)控。步驟S403,監(jiān)控所述目標(biāo)程序中與所述配置的線程名字相一致的線程。步驟S404,判斷所述目標(biāo)程序中是否存在與所述配置的函數(shù)名字相一致的線程,判斷結(jié)果為是時(shí),執(zhí)行步驟S405,判斷結(jié)果為否時(shí),返回步驟S404。具體實(shí)現(xiàn)中,判斷目標(biāo)程序中是否存在與配置的函數(shù)名字相一致的線程,實(shí)現(xiàn)語句例如:“M0nit0r_fUncti0n_names=”””,如果實(shí)現(xiàn)語句中無配置的函數(shù)名字則默認(rèn)為不監(jiān)控,配置值為ALL時(shí)表示全部監(jiān)控。步驟S405,記錄所述配置的函數(shù)名字對(duì)應(yīng)的函數(shù)接口。具體實(shí)現(xiàn)中,通過檢測(cè)程序計(jì)數(shù)器,以線程為分類,把每個(gè)線程中與配置的函數(shù)名字對(duì)應(yīng)的函數(shù)接口的調(diào)用軌跡以樹形結(jié)構(gòu)記錄下來。步驟S406,判斷所述目標(biāo)程序中是否存在與所述配置的全局變量名字相一致的線程,判斷結(jié)果為是時(shí),執(zhí)行步驟S407,判斷結(jié)果為否時(shí),返回步驟S406。具體實(shí)現(xiàn)中,判斷目標(biāo)程序中是否存在與配置的全局變量名字相一致的線程,實(shí)現(xiàn)語句例如:“Monitor_Variable_names=”””,如果實(shí)現(xiàn)語句中無配置的全局變量名字則默認(rèn)為不監(jiān)控,配置值為ALL時(shí)表示全部監(jiān)控。步驟S407,記錄所述配置的全局變量名字對(duì)應(yīng)的變量值的變化軌跡。具體實(shí)現(xiàn)中,記錄配置的全局變量名字對(duì)應(yīng)的變量值的變化軌跡。在本發(fā)明實(shí)施例中,所述步驟S402 步驟S403、步驟S404 步驟S405、步驟S406 步驟S407沒有先后順序之分,可以同時(shí)進(jìn)行,也可先執(zhí)行任意一個(gè)步驟再執(zhí)行其他步驟。步驟S408,根據(jù)所述監(jiān)控記錄結(jié)果得到運(yùn)行狀態(tài)跟蹤數(shù)據(jù),并保存所述運(yùn)行狀態(tài)跟蹤數(shù)據(jù)。具體實(shí)現(xiàn)中,根據(jù)步驟S403的監(jiān)控結(jié)果、步驟S405記錄的函數(shù)接口和步驟S407記錄的變化軌跡得到運(yùn)行狀態(tài)跟蹤數(shù)據(jù),將運(yùn)行狀態(tài)跟蹤數(shù)據(jù)保存到指定目錄中,例如可以通過語句:“Monitor_save_path=./”實(shí)現(xiàn)。進(jìn)一步可選的,可以根據(jù)語句“Monitor_time_gap= Μ”(Μ為具體配置的時(shí)間值,例如30秒、60秒等)實(shí)現(xiàn)按照一定的時(shí)間間隔追加保存運(yùn)行狀態(tài)跟蹤數(shù)據(jù)到指定目錄中。本發(fā)明實(shí)施例中一種嵌入式軟件測(cè)試監(jiān)控方法,采用運(yùn)行狀態(tài)跟蹤模式監(jiān)控嵌入式軟件的測(cè)試,可監(jiān)控與配置的線程名字相一致的線程、記錄與配置的函數(shù)名字對(duì)應(yīng)的函數(shù)接口或記錄與配置的全局變量名字對(duì)應(yīng)的變量值的變化軌跡,從而得到運(yùn)行狀態(tài)跟蹤數(shù)據(jù),可通過串口網(wǎng)線或者USB設(shè)備導(dǎo)出運(yùn)行狀態(tài)跟蹤數(shù)據(jù),從而對(duì)測(cè)試過程進(jìn)行分析或還原現(xiàn)場(chǎng)測(cè)試的情況,可降低研發(fā)周期,提高了軟件開發(fā)效率,且該嵌入式軟件測(cè)試監(jiān)控系統(tǒng)可與嵌入式軟件一起運(yùn)行在同一個(gè)嵌入式設(shè)備上,減少了研發(fā)成本。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random AccessMemory, RAM)等。以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
      權(quán)利要求
      1.一種嵌入式軟件測(cè)試監(jiān)控方法,其特征在于,所述方法包括: 判斷是否開啟快照監(jiān)控模式或運(yùn)行狀態(tài)跟蹤模式; 若開啟快照監(jiān)控模式,則判斷當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)是否滿足預(yù)設(shè)的快照監(jiān)控時(shí)間參數(shù)閾值; 如果滿足,根據(jù)所述當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)建立對(duì)應(yīng)的目標(biāo)程序快照,并保存所述目標(biāo)程序快照; 若開啟運(yùn)行狀態(tài)跟蹤模式,則判斷目標(biāo)程序中是否存在滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程; 如果存在,監(jiān)控所述目標(biāo)程序中滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述快照監(jiān)控線程的時(shí)間參數(shù)至少包括:快照監(jiān)控滯留時(shí)間和快照監(jiān)控時(shí)間間隔。
      3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件包括:配置的線程名字、配置的函數(shù)名字、配 置的全局變量名字中的一個(gè)或多個(gè); 所述監(jiān)控所述目標(biāo)程序中滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程包括: 如果所述目標(biāo)程序中存在與所述配置的線程名字相一致的線程,監(jiān)控所述目標(biāo)程序中與所述配置的線程名字相一致的線程;或 如果所述目標(biāo)程序中存在與所述配置的函數(shù)名字相一致的線程,記錄所述配置的函數(shù)名字對(duì)應(yīng)的函數(shù)接口 ;或 如果所述目標(biāo)程序中存在與所述配置的全局變量名字相一致的線程,記錄所述配置的全局變量名字對(duì)應(yīng)的變量值的變化軌跡。
      4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述判斷是否開啟快照監(jiān)控模式或運(yùn)行狀態(tài)跟蹤模式之前包括: 創(chuàng)建并配置所述快照監(jiān)控線程;或 創(chuàng)建并配置所述運(yùn)行狀態(tài)跟蹤線程。
      5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述監(jiān)控所述目標(biāo)程序中滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程之后包括: 根據(jù)所述監(jiān)控結(jié)果得到運(yùn)行狀態(tài)跟蹤數(shù)據(jù),并保存所述運(yùn)行狀態(tài)跟蹤數(shù)據(jù)。
      6.一種嵌入式軟件測(cè)試監(jiān)控系統(tǒng),其特征在于,所述系統(tǒng)包括:快照監(jiān)控模塊或運(yùn)行狀態(tài)跟蹤I旲塊,其中: 所述快照監(jiān)控模塊包括:快照監(jiān)控判斷單元和快照建立單元,其中,所述快照監(jiān)控判斷單元,用于當(dāng)開啟快照監(jiān)控模式時(shí),判斷當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)是否滿足預(yù)設(shè)的快照監(jiān)控時(shí)間參數(shù)閾值;所述快照建立單元,用于當(dāng)快照監(jiān)控判斷單元判斷結(jié)果為是時(shí),根據(jù)所述當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)建立對(duì)應(yīng)的目標(biāo)程序快照,并保存所述目標(biāo)程序快昭.所述運(yùn)行狀態(tài)跟蹤模塊包括:運(yùn)行狀態(tài)跟蹤條件判斷單元和運(yùn)行狀態(tài)監(jiān)控單元,其中,所述運(yùn)行狀態(tài)跟蹤條件判斷單元,用于當(dāng)開啟運(yùn)行狀態(tài)跟蹤模式時(shí),判斷目標(biāo)程序中是否存在滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程;所述運(yùn)行狀態(tài)監(jiān)控單元,用于當(dāng)所述運(yùn)行狀態(tài)跟蹤條件判斷單元判斷結(jié)果為是時(shí),監(jiān)控所述目標(biāo)程序中滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程。
      7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述快照監(jiān)控線程的時(shí)間參數(shù)至少包括:快照監(jiān)控滯留時(shí)間和快照監(jiān)控時(shí)間間隔。
      8.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件包括:配置的線程名字、配置的函數(shù)名字、配置的全局變量名字中的一個(gè)或多個(gè); 所述運(yùn)行狀態(tài)監(jiān)控單元包括: 線程監(jiān)控子單元,用于當(dāng)所述目標(biāo)程序中存在與所述配置的線程名字相一致的線程時(shí),監(jiān)控所述目標(biāo)程序中與所述配置的線程名字相一致的線程; 函數(shù)接口記錄子單元,用于當(dāng)所述目標(biāo)程序中存在與所述配置的函數(shù)名字相一致的線程時(shí),記錄所述配置的函數(shù)名字對(duì)應(yīng)的函數(shù)接口 ; 變化軌跡記錄子單元,用于當(dāng)所述目標(biāo)程序中存在與所述配置的全局變量名字相一致的線程時(shí),記錄所述配置的全局變量名字對(duì)應(yīng)的變量值的變化軌跡。
      9.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述快照監(jiān)控模塊還包括: 快照監(jiān)控線程創(chuàng)建單元,用于創(chuàng)建并配置所述快照監(jiān)控線程; 所述運(yùn)行狀態(tài)跟蹤模塊還包 括: 運(yùn)行狀態(tài)跟蹤線程創(chuàng)建單元,用于創(chuàng)建并配置所述運(yùn)行狀態(tài)跟蹤線程。
      10.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述運(yùn)行狀態(tài)跟蹤模塊還包括: 運(yùn)行狀態(tài)跟蹤數(shù)據(jù)存儲(chǔ)單元,用于根據(jù)所述監(jiān)控結(jié)果得到運(yùn)行狀態(tài)跟蹤數(shù)據(jù),并保存所述運(yùn)行狀態(tài)跟蹤數(shù)據(jù)。
      全文摘要
      本發(fā)明實(shí)施例公開了一種嵌入式軟件測(cè)試監(jiān)控方法,包括判斷是否開啟快照監(jiān)控模式或運(yùn)行狀態(tài)跟蹤模式;若開啟快照監(jiān)控模式,則判斷當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)是否滿足預(yù)設(shè)的快照監(jiān)控時(shí)間參數(shù)閾值;如果滿足,根據(jù)所述當(dāng)前的快照監(jiān)控線程的時(shí)間參數(shù)建立對(duì)應(yīng)的目標(biāo)程序快照,并保存所述目標(biāo)程序快照;若開啟運(yùn)行狀態(tài)跟蹤模式,則判斷目標(biāo)程序中是否存在滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程;如果存在,監(jiān)控所述目標(biāo)程序中滿足預(yù)設(shè)的運(yùn)行狀態(tài)跟蹤條件的線程。本發(fā)明實(shí)施例還公開了一種嵌入式軟件測(cè)試監(jiān)控系統(tǒng)。采用本發(fā)明,可采用快照監(jiān)控模式或運(yùn)行狀態(tài)跟蹤模式監(jiān)控嵌入式軟件的測(cè)試,提高了軟件開發(fā)效率,減少了研發(fā)成本。
      文檔編號(hào)G06F11/36GK103176901SQ20131006183
      公開日2013年6月26日 申請(qǐng)日期2013年2月27日 優(yōu)先權(quán)日2013年2月27日
      發(fā)明者劉炳偉 申請(qǐng)人:深圳創(chuàng)維數(shù)字技術(shù)股份有限公司, 深圳市創(chuàng)維軟件有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1