自動調(diào)試與防錯方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種調(diào)試方法及裝置,且特別涉及一種自動調(diào)試與防錯方法及裝置。
【背景技術(shù)】
[0002] 隨著科技的進(jìn)步,智能型手機、平板電腦等電子裝置日益普及,各式各樣的軟件或 固件被開發(fā)以提供使用者更多元的應(yīng)用。
[0003] -般而言,在開發(fā)軟件或固件時,開發(fā)人員是通過調(diào)試信息(debug message)的輔 助來對軟件或固件進(jìn)行調(diào)試。而在現(xiàn)今的開發(fā)模式中,一般都是在問題發(fā)生后,被動地由開 發(fā)人員想辦法復(fù)制錯誤操作,收集調(diào)試信息以進(jìn)行調(diào)試。然而,在產(chǎn)品出貨后,開發(fā)人員將 難以收集調(diào)試信息,從而導(dǎo)致開發(fā)端對于產(chǎn)品后續(xù)的追蹤及調(diào)試產(chǎn)生困難,只能被動地等 待問題發(fā)生,再回收產(chǎn)品以進(jìn)行調(diào)試。且對用戶端而言,錯誤程序一再發(fā)生也將影響使用者 操作電子裝置時的流暢度,而造成使用上的困擾。
[0004] 因此,有必要提供一種更便利的方式,可協(xié)助開發(fā)端進(jìn)行調(diào)試,并避免錯誤程序影 響電子裝置的穩(wěn)定性。
【發(fā)明內(nèi)容】
[0005] 針對現(xiàn)有技術(shù)存在的問題,本發(fā)明的目的在于提供一種自動調(diào)試與防錯方法、裝 置與電腦程序產(chǎn)品,可自動歸納錯誤程序規(guī)則,并據(jù)以判斷錯誤程序是否發(fā)生以執(zhí)行預(yù)防 動作,從而改善電子裝置的穩(wěn)定度。
[0006] 本發(fā)明的自動調(diào)試與防錯方法適用于電子裝置。此方法首先提取電子裝置執(zhí)行調(diào) 試所得的多個調(diào)試信息。接著,分析調(diào)試信息,以在調(diào)試信息中出現(xiàn)至少一個錯誤信息時, 根據(jù)各調(diào)試信息的數(shù)據(jù),找出彼此關(guān)聯(lián)且重復(fù)出現(xiàn)次數(shù)達(dá)到第一閾值的多個操作程序,以 歸納至少一個錯誤程序規(guī)則。再將后續(xù)提取的各調(diào)試信息與各錯誤程序規(guī)則中的操作程序 依序進(jìn)行比對,據(jù)以判斷各錯誤程序規(guī)則中操作程序的完成比例是否達(dá)到設(shè)定比例。當(dāng)完 成比例達(dá)到設(shè)定比例時,執(zhí)行目前調(diào)試信息對應(yīng)的操作程序的預(yù)防動作。
[0007] 在本發(fā)明的一實施例中,上述分析調(diào)試信息的步驟還包括讀取各調(diào)試信息的表頭 數(shù)據(jù),并判斷表頭數(shù)據(jù)內(nèi)的識別碼是否符合預(yù)設(shè)識別碼,且若表頭數(shù)據(jù)內(nèi)的識別碼不符合 預(yù)設(shè)識別碼,將對應(yīng)的調(diào)試信息濾除。
[0008] 在本發(fā)明的一實施例中,上述根據(jù)各調(diào)試信息的數(shù)據(jù),找出彼此關(guān)聯(lián)且重復(fù)出現(xiàn) 次數(shù)達(dá)到第一閾值的操作程序,以歸納錯誤程序規(guī)則的步驟包括通過關(guān)聯(lián)式規(guī)則算法,找 出調(diào)試信息對應(yīng)的操作程序中彼此關(guān)聯(lián)且重復(fù)出現(xiàn)次數(shù)符合第一閾值的最大組合,以將此 最大組合所包括的操作程序歸納為錯誤程序規(guī)則。
[0009] 在本發(fā)明的一實施例中,在上述根據(jù)各調(diào)試信息的數(shù)據(jù),找出彼此關(guān)聯(lián)且重復(fù)出 現(xiàn)次數(shù)達(dá)到第一閾值的操作程序,以歸納錯誤程序規(guī)則的步驟之后,所述方法還包括查詢 分析數(shù)據(jù)庫中是否包括所歸納的錯誤程序規(guī)則,且若分析數(shù)據(jù)庫沒有包括所歸納的錯誤程 序規(guī)則,則將此錯誤程序規(guī)則更新于分析數(shù)據(jù)庫。
[0010] 在本發(fā)明的一實施例中,在上述提取電子裝置執(zhí)行調(diào)試所得的調(diào)試信息的步驟之 后,所述方法還包括分析調(diào)試信息,以在調(diào)試信息中出現(xiàn)至少一個程序終止信息時,根據(jù)各 調(diào)試信息的數(shù)據(jù),找出彼此關(guān)聯(lián)且重復(fù)出現(xiàn)次數(shù)達(dá)到第二閾值的多個操作程序,以歸納至 少一個正確程序規(guī)則。
[0011] 在本發(fā)明的一實施例中,上述將后續(xù)提取的各調(diào)試信息與各錯誤程序規(guī)則中的操 作程序依序進(jìn)行比對的步驟包括建立比對狀態(tài)表,并在比對狀態(tài)表中記錄各錯誤程序規(guī)則 的規(guī)則識別碼及設(shè)定比例。以及根據(jù)比對結(jié)果,更新比對狀態(tài)表中各錯誤程序規(guī)則中比對 相符的操作程序的筆數(shù)及對應(yīng)的完成比例。
[0012] 在本發(fā)明的一實施例中,在上述執(zhí)行目前調(diào)試信息對應(yīng)的操作程序的預(yù)防動作的 步驟之后,所述方法還包括累計攔截次數(shù),并判斷后續(xù)是否提取到錯誤信息。若提取到錯誤 信息,則累計失敗次數(shù),并根據(jù)攔截次數(shù)與失敗次數(shù)而計算成功率,以判斷成功率是否達(dá)到 預(yù)設(shè)值。若成功率達(dá)到預(yù)設(shè)值,提高設(shè)定比例;若成功率未達(dá)到預(yù)設(shè)值,則降低設(shè)定比例。
[0013] 在本發(fā)明的一實施例中,在上述執(zhí)行目前該調(diào)試信息對應(yīng)的該操作程序的該預(yù)防 動作的步驟之前,所述方法還包括查詢控制項目表,以找出預(yù)防操作程序發(fā)生錯誤的預(yù)防 動作。
[0014] 在本發(fā)明的一實施例中,上述查詢控制項目表,以找出預(yù)防操作程序發(fā)生的預(yù)防 動作的步驟還包括當(dāng)在控制項目表中找到操作程序的預(yù)防動作時,累計操作程序的預(yù)防次 數(shù);當(dāng)在控制項目表中找不到操作程序的預(yù)防動作時,于控制項目表中新增操作程序,并將 此操作程序?qū)?yīng)的預(yù)防動作預(yù)設(shè)為空。
[0015] 在本發(fā)明的一實施例中,上述提取電子裝置執(zhí)行調(diào)試所得的調(diào)試信息的步驟包括 從電子裝置的通用非同步接收傳送(Universal Asynchronous Receiver-Transmitter, UART)驅(qū)動程序或電子裝置中各應(yīng)用程序的應(yīng)用程序接口(application program interface)記錄程序提取調(diào)試信息。
[0016] 本發(fā)明的自動調(diào)試與防錯裝置包括存儲單元以及一或多個處理單元。其中,存儲 單元用以記錄多個模塊。處理單元耦接于存儲單元,以存取并執(zhí)行存儲單元中記錄的模塊, 這些模塊包括信息提取模塊、信息分析模塊、比對模塊以及控制模塊。其中,信息提取模塊 用以提取裝置執(zhí)行調(diào)試所得的多個調(diào)試信息。信息分析模塊用以分析調(diào)試信息,并在調(diào)試 信息中出現(xiàn)至少一個錯誤信息時,根據(jù)各調(diào)試信息的數(shù)據(jù),找出彼此關(guān)聯(lián)且重復(fù)出現(xiàn)次數(shù) 達(dá)到第一閾值的多個操作程序,以歸納至少一個錯誤程序規(guī)則。比對模塊用以將信息提取 模塊后續(xù)提取的各調(diào)試信息與各錯誤程序規(guī)則中的操作程序依序進(jìn)行比對,據(jù)以判斷各錯 誤程序規(guī)則中操作程序的完成比例是否達(dá)到設(shè)定比例。控制模塊用以當(dāng)比對模塊判斷完成 比例達(dá)到設(shè)定比例時,執(zhí)行目前調(diào)試信息對應(yīng)的操作程序的預(yù)防動作。
[0017] 在本發(fā)明的一實施例中,上述的信息分析模塊還讀取各調(diào)試信息的表頭數(shù)據(jù),以 濾除表頭數(shù)據(jù)內(nèi)的識別碼不符合預(yù)設(shè)識別碼的調(diào)試信息。
[0018] 在本發(fā)明的一實施例中,上述的信息分析模塊包括通過關(guān)聯(lián)式規(guī)則算法,找出調(diào) 試信息對應(yīng)的操作程序中彼此關(guān)聯(lián)且重復(fù)出現(xiàn)次數(shù)符合第一閾值的最大組合,以將此最大 組合所包括的操作程序歸納為錯誤程序規(guī)則。
[0019] 在本發(fā)明的一實施例中,上述的信息分析模塊還查詢分析數(shù)據(jù)庫中是否包括所歸 納的錯誤程序規(guī)則,并在分析數(shù)據(jù)庫沒有包括所歸納的錯誤程序規(guī)則時,將錯誤程序規(guī)則 更新于分析數(shù)據(jù)庫。
[0020] 在本發(fā)明的一實施例中,上述的信息分析模塊還分析調(diào)試信息,并在調(diào)試信息中 出現(xiàn)至少一個程序終止信息時,根據(jù)各調(diào)試信息的數(shù)據(jù),找出彼此關(guān)聯(lián)且重復(fù)出現(xiàn)次數(shù)達(dá) 到第二閾值的多個操作程序,以歸納至少一個正確程序規(guī)則。
[0021] 在本發(fā)明的一實施例中,上述的比對模塊包括建立比對狀態(tài)表,并在比對狀態(tài)表 中記錄各錯誤程序規(guī)則的規(guī)則識別碼及設(shè)定比例,以及根據(jù)比對結(jié)果,更新比對狀態(tài)表中 各錯誤程序規(guī)則中比對相符的操作程序的筆數(shù)及對應(yīng)的完成比例。
[0022] 在本發(fā)明的一實施例中,上述的信息分析模塊還在控制模塊執(zhí)行目前調(diào)試信息對 應(yīng)的操作程序的預(yù)防動作之后,累計攔截次數(shù),并判斷后續(xù)信息提取模塊是否提取到錯誤 信息