選擇的異常日志對應(yīng)的移動終端的系統(tǒng)信息、應(yīng)用信息以及調(diào)用棧信息。應(yīng)用測試人員可通過該異常日志的詳細(xì)信息對應(yīng)用異常進(jìn)行解析處理。
[0057]在步驟S205中,如檢測到應(yīng)用前一次運(yùn)行正常,則異常日志處理裝置正常啟動應(yīng)用,如應(yīng)用測試人員需要查看異常日志,可通過發(fā)出查看請求查看存儲在移動終端內(nèi)的異常日志。
[0058]這樣即完成了本優(yōu)選實(shí)施例的異常日志處理方法的異常日志處理過程。
[0059]本優(yōu)選實(shí)施例的異常日志處理方法在第一優(yōu)選實(shí)施例的基礎(chǔ)上對異常應(yīng)用的動態(tài)信息進(jìn)行回調(diào)以及對異常日志的自動讀取顯示進(jìn)行設(shè)置,進(jìn)一步提高了應(yīng)用異常的處理效率。
[0060]本發(fā)明還提供一種異常日志處理裝置,請參照圖3,圖3為本發(fā)明的異常日志處理裝置的第一優(yōu)選實(shí)施例的結(jié)構(gòu)示意圖。本優(yōu)選實(shí)施例的異常日志處理裝置30包括記錄模塊31、存儲模塊32以及顯示模塊33,記錄模塊31用于檢測應(yīng)用異常信號34,并根據(jù)應(yīng)用異常信號34,記錄應(yīng)用異常時(shí)的移動終端的系統(tǒng)信息、應(yīng)用信息以及調(diào)用棧信息;存儲模塊32用于根據(jù)移動終端的系統(tǒng)信息、應(yīng)用信息以及調(diào)用棧信息,生成與應(yīng)用異常信號34相關(guān)的異常日志,并將所述異常日志存儲在移動終端內(nèi);顯示模塊33用于在應(yīng)用啟動時(shí),讀取并顯示異常日志。
[0061]本優(yōu)選實(shí)施例的異常日志處理裝置30使用時(shí),首先記錄模塊31檢測應(yīng)用異常信號34,該應(yīng)用異常信號34為應(yīng)用異常退出或異常崩潰時(shí),移動終端的系統(tǒng)發(fā)出的信號,如終止信號(SIGABRT)、無效指令信號(SIGILL)、無效存儲訪問信號(SIGSEGV)、運(yùn)算錯(cuò)誤信號(SIGFPE)、硬件異常信號(SIGBUS)、通道異常信號(SIGPIPE)以及設(shè)備異?;卣{(diào)信號(NSSetUncaughtExcept1nHandler)等。
[0062]隨后記錄模塊31根據(jù)檢測到的應(yīng)用異常信號,記錄應(yīng)用異常時(shí)的移動終端的系統(tǒng)信息、應(yīng)用信息以及調(diào)用棧信息。這里移動終端的系統(tǒng)信息包括移動終端的硬件信息(如iphone、ipad等)以及移動終端的軟件信息(如系統(tǒng)類型信息以及系統(tǒng)版本信息等)。應(yīng)用信息包括應(yīng)用名以及應(yīng)用的版本信息等。調(diào)用棧信息包括應(yīng)用運(yùn)行時(shí)每個(gè)線程的函數(shù)調(diào)用信息,包括函數(shù)參數(shù),返回地址、調(diào)用現(xiàn)場以及局部變量等信息。一般應(yīng)用測試人員通過調(diào)用棧信息結(jié)合應(yīng)用信息以及系統(tǒng)信息就可以較好的對應(yīng)用異常進(jìn)行解析處理。
[0063]然后存儲模塊32根據(jù)記錄模塊31記錄的移動終端的系統(tǒng)信息、應(yīng)用信息以及調(diào)用棧信息,生成與該應(yīng)用異常信號相關(guān)的異常日志。該異常日志可直接記錄上述系統(tǒng)信息、應(yīng)用信息以及調(diào)用棧信息,也可對上述系統(tǒng)信息、應(yīng)用信息以及調(diào)用棧信息進(jìn)行分類壓縮后生成相應(yīng)的異常日志。如有多個(gè)線程的調(diào)用棧信息,其中部分線程的調(diào)用棧信息未進(jìn)行完整記錄(如應(yīng)用退出時(shí)造成調(diào)用棧信息丟失等),可將未完整記錄的調(diào)用棧信息刪除,或?qū)⑽赐暾涗浀恼{(diào)用棧信息的優(yōu)先級別調(diào)低。然后將生成的異常日志存儲在移動終端的內(nèi)部存儲器中。
[0064]最后應(yīng)用測試人員在移動終端進(jìn)行應(yīng)用啟動時(shí),顯示模塊33會讀取存儲在移動終端內(nèi)的異常日志,并通過移動終端的顯示屏將異常日志提供給應(yīng)用測試人員。應(yīng)用測試人員可通過該異常日志對應(yīng)用異常進(jìn)行解析處理。
[0065]這樣即完成了本優(yōu)選實(shí)施例的異常日志處理裝置30的異常日志處理過程。
[0066]本優(yōu)選實(shí)施例的異常日志處理裝置根據(jù)應(yīng)用異常信號生成異常日志,并直接將該異常日志存儲在異常終端內(nèi),應(yīng)用測試人員可方便的對異常日志進(jìn)行查看解析,提高了應(yīng)用異常的處理效率。
[0067]請參照圖4,圖4為本發(fā)明的異常日志處理裝置的第二優(yōu)選實(shí)施例的結(jié)構(gòu)示意圖。本優(yōu)選實(shí)施例的異常日志處理裝置40包括記錄模塊41、存儲模塊42以及顯示模塊43。在本優(yōu)選實(shí)施例的異常日志處理裝置40中,該顯示模塊43包括異常檢測單元431、顯示單元432以及啟動單元433,異常檢測單元431用于應(yīng)用啟動時(shí),通過異常日志檢測應(yīng)用前一次運(yùn)行是否異常;顯示單元432用于讀取并顯示異常日志;啟動單元433用于正常啟動應(yīng)用。
[0068]顯示單元432包括列表顯示子單元和詳細(xì)信息顯示子單元,列表顯示子單元用于讀取移動終端內(nèi)的所有的異常日志,以顯示異常日志的列表;詳細(xì)信息顯示子單元用于接收選擇指令,并根據(jù)選擇指令讀取并顯示相應(yīng)的異常日志的詳細(xì)信息,其中異常日志的詳細(xì)信息包括與異常日志對應(yīng)的移動終端的系統(tǒng)信息、應(yīng)用信息以及調(diào)用棧信息。
[0069]記錄模塊41包括回調(diào)單元411以及記錄單元412,回調(diào)單元411用于對應(yīng)用的動態(tài)信息進(jìn)行回調(diào),具體為將應(yīng)用的動態(tài)信息恢復(fù)至應(yīng)用異常信號44產(chǎn)生前的最近記錄點(diǎn);記錄單元412用于在回調(diào)過程中,記錄應(yīng)用異常時(shí)的移動終端的系統(tǒng)信息、應(yīng)用信息以及調(diào)用棧信息。
[0070]本優(yōu)選實(shí)施例的異常日志處理裝置40使用時(shí),首先記錄模塊41檢測應(yīng)用異常信號44,該應(yīng)用異常信號44為應(yīng)用異常退出或異常崩潰時(shí),移動終端的系統(tǒng)發(fā)出的信號。
[0071]隨后記錄模塊41根據(jù)檢測到的應(yīng)用異常信號44,記錄應(yīng)用異常時(shí)的移動終端的系統(tǒng)信息、應(yīng)用信息以及調(diào)用棧信息。具體的:
[0072]檢測到應(yīng)用異常信號44時(shí),記錄模塊41的回調(diào)單元411會對應(yīng)用的動態(tài)信息進(jìn)行回調(diào),即將應(yīng)用的動態(tài)信息恢復(fù)至應(yīng)用異常信號44產(chǎn)生前的最近記錄點(diǎn)。這里的應(yīng)用的動態(tài)信息即應(yīng)用中用戶可修改的信息,正是由于應(yīng)用中動態(tài)信息的修改導(dǎo)致應(yīng)用中的動態(tài)信息與靜態(tài)信息不兼容或信息運(yùn)行錯(cuò)誤,因此將動態(tài)信息進(jìn)行回調(diào)后可避免應(yīng)用再次運(yùn)行時(shí)出現(xiàn)應(yīng)用異常。
[0073]隨后記錄模塊41的記錄單元412在動態(tài)信息的回調(diào)過程中,記錄應(yīng)用異常時(shí)的移動終端的系統(tǒng)信息、應(yīng)用信息以及調(diào)用棧信息。
[0074]然后存儲模塊42根據(jù)記錄模塊記錄的移動終端的系統(tǒng)信息、應(yīng)用信息以及調(diào)用棧信息,生成與該應(yīng)用異常信號44相關(guān)的異常日志。該異常日志可直接記錄上述系統(tǒng)信息、應(yīng)用信息以及調(diào)用棧信息,也可對上述系統(tǒng)信息、應(yīng)用信息以及調(diào)用棧信息進(jìn)行分類壓縮后生成相應(yīng)的異常日志。如有多個(gè)線程的調(diào)用棧信息,其中部分線程的調(diào)用棧信息未進(jìn)行完整記錄(如應(yīng)用退出時(shí)造成調(diào)用棧信息丟失等),可將未完整記錄的調(diào)用棧信息刪除,或?qū)⑽赐暾涗浀恼{(diào)用棧信息的優(yōu)先級別調(diào)低。然后將生成的異常日志存儲在移動終端的內(nèi)部存儲器中。
[0075]應(yīng)用啟動時(shí),顯示模塊43的異常檢測單元431檢測應(yīng)用前一次運(yùn)行是否異常,
[0076]如檢測到應(yīng)用前一次運(yùn)行異常,應(yīng)用測試人員可能需要對該應(yīng)用異常進(jìn)行處理,因此在移動終端進(jìn)行應(yīng)用啟動時(shí),顯示模塊43的顯示單元432會讀取存儲在移動終端內(nèi)的異常日志,并通過移動終端的顯示屏將異常日志提供給應(yīng)用測試人員。具體可為:
[0077]顯示單元432的列表顯示子單元讀取移動終端內(nèi)的所有的異常日志,以顯示異常日志的列表,該異常日志的列表可顯示記錄的所有的異常日志,以供應(yīng)用測試人員進(jìn)行異常分析。
[0078]隨后顯示單元432的詳細(xì)信息顯示子單元接收選擇指令(即用戶通過移動終端發(fā)出的對列表中的異常日志進(jìn)行選擇查看的指令),并根據(jù)該選擇指令讀取并顯示相應(yīng)的異常日志的詳細(xì)信