[0138]11、根據(jù)10所述的應(yīng)用崩潰日志的獲取方法,所述崩潰信息還包括安裝所述應(yīng)用的設(shè)備型號(hào)。
[0139]12、一種應(yīng)用崩潰日志的獲取裝置,包括:
[0140]寫入單元,用于將守護(hù)文件作為代碼數(shù)據(jù)寫入應(yīng)用的殼程序文件中,所述殼程序文件還包括應(yīng)用程序文件;
[0141 ]處理單元,用于運(yùn)行所述殼程序文件,以及確定所述應(yīng)用是否發(fā)生崩潰;
[0142]獲取單元,用于在所述應(yīng)用發(fā)生崩潰時(shí),通過所述守護(hù)文件獲取所述應(yīng)用的崩潰
?目息O
[0143]13、根據(jù)12所述的應(yīng)用崩潰日志的獲取裝置,所述應(yīng)用程序文件包括dex文件和SO文件;所述SO文件為所述應(yīng)用程序文件中dex文件進(jìn)行加密保護(hù)的代碼或者應(yīng)用程序文件中的dex文件核心代碼。
[0144]14、根據(jù)12或13所述的應(yīng)用崩潰日志的獲取裝置,所述處理單元包括:
[0145]第一執(zhí)行單元,用于啟動(dòng)所述殼程序文件,并運(yùn)行所述殼程序文件中的守護(hù)文件;
[0146]信號(hào)注冊(cè)單元,用于守護(hù)進(jìn)程在主進(jìn)程中注冊(cè)各類崩潰信息對(duì)應(yīng)的信號(hào),所述守護(hù)進(jìn)程與所述守護(hù)程序文件對(duì)應(yīng),所述主進(jìn)程與所述殼程序文件對(duì)應(yīng);
[0147]第二執(zhí)行單元,用于運(yùn)行所述應(yīng)用程序文件;
[0148]崩潰確定單元,用于在所述主進(jìn)程獲取所述信息時(shí),確定所述應(yīng)用發(fā)生崩潰。
[0149]15、根據(jù)14所述的應(yīng)用崩潰日志的獲取裝置,所述獲取單元包括:
[0150]信息交互單元,用于守護(hù)進(jìn)程與所述主進(jìn)程進(jìn)行信息交互;
[0151]信息確定單元,用于所述守護(hù)進(jìn)程根據(jù)所述主進(jìn)程獲取的信號(hào)確定崩潰進(jìn)程,獲取所述應(yīng)用的崩潰信息。
[0152]16、根據(jù)15所述的應(yīng)用崩潰日志的獲取裝置,所述守護(hù)進(jìn)程通過handler與所述主進(jìn)程進(jìn)行信息交互。
[0153]17、根據(jù)15所述的應(yīng)用崩潰日志的獲取裝置,所述SO文件包括debug代碼;所述信息確定單元在用于所述守護(hù)進(jìn)程根據(jù)所述主進(jìn)程獲取的信號(hào)確定崩潰進(jìn)程,獲取所述應(yīng)用的崩潰信息時(shí)包括:
[0154]所述守護(hù)進(jìn)程與所述崩潰進(jìn)程進(jìn)行交互,利用所述SO文件中debug代碼通過系統(tǒng)調(diào)用棧逐步回溯,直至回溯失敗,確定崩潰函數(shù)的位置。
[0155]18、根據(jù)17所述的應(yīng)用崩潰日志的獲取裝置,所述守護(hù)進(jìn)程通過ptrace系統(tǒng)接口與所述崩潰進(jìn)程進(jìn)行交互。
[0156]19、根據(jù)12所述的應(yīng)用崩潰日志的獲取裝置,所述應(yīng)用崩潰日志的獲取裝置還包括:
[0157]信息發(fā)送單元,用于將所獲取的崩潰信息發(fā)送至所述殼程序文件的開發(fā)方或者所述應(yīng)用程序文件的開發(fā)方。
[0158]20、根據(jù)12所述的應(yīng)用崩潰日志的獲取裝置,所述信息發(fā)送單元包括:
[0159]時(shí)間設(shè)定單元,用于設(shè)定預(yù)設(shè)時(shí)間;
[0160]郵件發(fā)送單元,用于每隔預(yù)設(shè)時(shí)間,通過郵件將所獲取的崩潰信息發(fā)送至所述殼程序文件的開發(fā)方或者所述應(yīng)用程序文件的開發(fā)方。
[0161]21、根據(jù)12所述的應(yīng)用崩潰日志的獲取裝置,所述崩潰信息包括崩潰的進(jìn)程、崩潰的線程、堆棧信息、寄存器信息、調(diào)用棧信息和Map信息中的一種或幾種。
[0162]22、根據(jù)21所述的應(yīng)用崩潰日志的獲取裝置,所述崩潰信息還包括安裝所述應(yīng)用的設(shè)備型號(hào)。
[0163]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0164]本發(fā)明的描述是為了示例和描述起見而給出的,而并不是無(wú)遺漏的或者將本發(fā)明限于所公開的形式。很多修改和變化對(duì)于本領(lǐng)域的普通技術(shù)人員而言是顯然的。選擇和描述實(shí)施例是為了更好說明本發(fā)明的原理和實(shí)際應(yīng)用,并且使本領(lǐng)域的普通技術(shù)人員能夠理解本發(fā)明從而設(shè)計(jì)適于特定用途的帶有各種修改的各種實(shí)施例。
【主權(quán)項(xiàng)】
1.一種應(yīng)用崩潰日志的獲取方法,其特征在于,包括: 將守護(hù)文件作為代碼數(shù)據(jù)寫入應(yīng)用的殼程序文件中,所述殼程序文件還包括應(yīng)用程序文件; 運(yùn)行所述殼程序文件; 判斷所述應(yīng)用是否發(fā)生崩潰; 若是,則通過所述守護(hù)文件獲取所述應(yīng)用的崩潰信息。2.根據(jù)權(quán)利要求1所述的應(yīng)用崩潰日志的獲取方法,其特征在于,所述應(yīng)用程序文件包括dex文件和SO文件;所述SO文件為所述應(yīng)用程序文件中dex文件進(jìn)行加密保護(hù)的代碼或者應(yīng)用程序文件中的dex文件核心代碼。3.根據(jù)權(quán)利要求1或2所述的應(yīng)用崩潰日志的獲取方法,其特征在于,判斷所述應(yīng)用是否發(fā)生崩潰包括: 啟動(dòng)所述殼程序文件,并運(yùn)行所述殼程序文件中的守護(hù)文件; 守護(hù)進(jìn)程在主進(jìn)程中注冊(cè)各類崩潰信息對(duì)應(yīng)的信號(hào),所述守護(hù)進(jìn)程與所述守護(hù)程序文件對(duì)應(yīng),所述主進(jìn)程與所述殼程序文件對(duì)應(yīng); 運(yùn)行所述應(yīng)用程序文件; 在所述主進(jìn)程獲取所述信號(hào)時(shí),確定所述應(yīng)用發(fā)生崩潰。4.根據(jù)權(quán)利要求3所述的應(yīng)用崩潰日志的獲取方法,其特征在于,通過所述守護(hù)文件獲取所述應(yīng)用的崩潰信息包括: 所述守護(hù)進(jìn)程與所述主進(jìn)程進(jìn)行信息交互; 所述守護(hù)進(jìn)程根據(jù)所述主進(jìn)程獲取的信號(hào)確定崩潰進(jìn)程,獲取所述應(yīng)用的崩潰信息。5.根據(jù)權(quán)利要求4所述的應(yīng)用崩潰日志的獲取方法,其特征在于,所述守護(hù)進(jìn)程通過handler與所述主進(jìn)程進(jìn)行信息交互。6.根據(jù)權(quán)利要求4所述的應(yīng)用崩潰日志的獲取方法,其特征在于,所述SO文件包括debug代碼;所述守護(hù)進(jìn)程根據(jù)所述主進(jìn)程獲取的信號(hào)確定崩潰進(jìn)程,獲取所述應(yīng)用的崩潰信息包括: 所述守護(hù)進(jìn)程與所述崩潰進(jìn)程進(jìn)行交互,利用所述SO文件中debug代碼通過系統(tǒng)調(diào)用棧逐步回溯,直至回溯失敗,確定崩潰函數(shù)的位置。7.根據(jù)權(quán)利要求6所述的應(yīng)用崩潰日志的獲取方法,其特征在于,所述守護(hù)進(jìn)程通過ptrace系統(tǒng)接口與所述崩潰進(jìn)程進(jìn)行交互。8.根據(jù)權(quán)利要求1所述的應(yīng)用崩潰日志的獲取方法,其特征在于,在通過所述守護(hù)文件獲取所述應(yīng)用的崩潰信息之后,所述應(yīng)用崩潰日志的獲取方法還包括:將所獲取的崩潰信息發(fā)送至所述殼程序文件的開發(fā)方或者所述應(yīng)用程序文件的開發(fā)方。9.根據(jù)權(quán)利要求8所述的應(yīng)用崩潰日志的獲取方法,其特征在于,每隔預(yù)設(shè)時(shí)間,通過郵件將所獲取的崩潰信息發(fā)送至所述殼程序文件的開發(fā)方或者所述應(yīng)用程序文件的開發(fā)方。10.一種應(yīng)用崩潰日志的獲取裝置,其特征在于,包括: 寫入單元,用于將守護(hù)文件作為代碼數(shù)據(jù)寫入應(yīng)用的殼程序文件中,所述殼程序文件還包括應(yīng)用程序文件; 處理單元,用于運(yùn)行所述殼程序文件,以及確定所述應(yīng)用是否發(fā)生崩潰;獲取單元,用于在所述應(yīng)用發(fā)生崩潰時(shí),通過所述守護(hù)文件獲取所述應(yīng)用的崩潰信息。
【專利摘要】本發(fā)明實(shí)施例公開了應(yīng)用崩潰日志的獲取方法及裝置,其中,應(yīng)用崩潰日志的獲取方法包括:將守護(hù)文件作為代碼數(shù)據(jù)寫入應(yīng)用的殼程序文件中,所述殼程序文件還包括應(yīng)用程序文件;運(yùn)行所述殼程序文件;判斷所述應(yīng)用是否發(fā)生崩潰;若是,則通過所述守護(hù)文件獲取所述應(yīng)用的崩潰信息。本發(fā)明中應(yīng)用的殼程序文件中不僅包括應(yīng)用程序文件,還將守護(hù)文件作為代碼數(shù)據(jù)寫入應(yīng)用的殼程序文件中,從而在運(yùn)行所述殼程序文件時(shí),若應(yīng)用發(fā)生崩潰,能夠通過守護(hù)文件獲取該應(yīng)用的崩潰信息。在保護(hù)應(yīng)用程序文件的基礎(chǔ)上,能夠快速準(zhǔn)確的獲取文件的崩潰信息,定位發(fā)生崩潰的位置,方便后續(xù)對(duì)發(fā)生崩潰的文件中的Bug進(jìn)行清除,提高應(yīng)用運(yùn)行的穩(wěn)定性。
【IPC分類】G06F11/34
【公開號(hào)】CN105630659
【申請(qǐng)?zhí)枴緾N201510979784
【發(fā)明人】吳樂
【申請(qǐng)人】北京奇虎科技有限公司, 奇智軟件(北京)有限公司
【公開日】2016年6月1日
【申請(qǐng)日】2015年12月23日