專利名稱:一種手機軟件異常時的調(diào)試方法
技術領域:
本發(fā)明涉及手機的調(diào)試領域,特別涉及一種手機軟件異常時的調(diào)試方法。
背景技術:
目前手機軟件研發(fā)的速度很快,在手機的開發(fā)過程中,軟件人員會經(jīng)常 被手機死機現(xiàn)象困擾。這種問題一般比較難以查找原因,而且一旦出現(xiàn)的話,就
屬于比較嚴重的問題,目前,這類問題的查找一般需要通過trace32等仿真測試 工具,但這類工具比較昂貴,對使用有了一定限制,所以就迫切需要一種方便易用 的調(diào)試方法。
本發(fā)明的目的是提供一種實現(xiàn)手機自動測試的方法,實現(xiàn)手機軟件研
發(fā)后的自動測試。
本發(fā)明提供一種手機軟件異常時的調(diào)試方法,包括以下步驟
1.1、當手機軟件發(fā)生異常時,檢測手機系統(tǒng)是否收到調(diào)試指令,若收
到則轉(zhuǎn)下一步驟;
1. 2、保存所述手機系統(tǒng)當前的內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)并將其生成腳本
文件;
1. 3、操作軟件仿真測試工具運行所述腳本文件進行所述軟件異常的分 析和測試。
所述步驟l.l首先判斷所述豐機軟件是否異常,包括以下步驟
2.1、 建立數(shù)據(jù)庫,存儲手機軟件異常類型;
2.2、 檢測手機軟件狀態(tài)并和所述數(shù)據(jù)庫存儲的軟件異常類型進行比 對,若一致則判斷所述手機軟件狀態(tài)為異常。
4所述步驟l.l中的所述調(diào)試指令的類型包括第一調(diào)試指令信號和第二 調(diào)試指令信號。
所述步驟l.l接收到第一調(diào)試指令信號時,進行以下步驟的調(diào)試
4. 1、將所述手機連接計算機并檢測是否接收到所述計算機發(fā)送的下載
指令,若有則轉(zhuǎn)下一步驟;
4.2、下載所述手機系統(tǒng)當前的內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)至所述計算機,
并將其生成腳本文件存儲;
4. 3、搡作軟件仿真測試工具運行所述步驟4. 3生成的腳本文件進行所
述軟件異常的分析和調(diào)試。
所述步驟l.l接收到第二調(diào)試指令信號時,進行以下步驟的調(diào)試
5.1、 建立所述手機的一特殊內(nèi)存空間,存儲所述手機系統(tǒng)當前的寄存 器信息和堆棧信息;
5.2、 重啟所述手機系統(tǒng),重啟后將所述特殊內(nèi)存空間存儲的當前的寄 存器信息和堆棧信息轉(zhuǎn)存至所述手機文件系統(tǒng),同時將其生成腳本文件存
儲至所述手機文件系統(tǒng);
5.3、 將所述手機連接計算機并將所述步驟5.2中的手機文件系統(tǒng)存儲
的數(shù)據(jù)文件傳輸至所述計算機進行保存;
5. 4、操作軟件仿真測試工具運行保存在所述計算機的腳本文件進行所
述軟件異常的分析和調(diào)試。
專利申請?zhí)枮?3139726,名稱為"手機與PC計算機通訊系統(tǒng)"的專利
申請公開了一種對手機的調(diào)試方案,但該方案主要是公開了一種硬件的連 接方式,并未涉及軟件方面。
釆用本發(fā)明所述的一種手機軟件異常時的調(diào)試方法,該方法檢測到手 機軟件異常時,將手機系統(tǒng)的內(nèi)存信息、寄存器信息以及其中的堆棧信息 取出并保存在計算機或手機的文件系統(tǒng)中,同時生成相應的腳本文件,然 后利用專業(yè)的軟件仿真測試工具運行所述腳本文件,對所述保存的信息進 行分析和調(diào)試,以求找到手機異常的原因。
圖l是本發(fā)明所述方法的主要流程圖2是本發(fā)明所述方法接收到第一調(diào)試指令時的流程圖3是本發(fā)明所述方法接收到第二調(diào)試指令時的流程圖。
具體實施例方式
下面結合附圖和實施例進一步說明本發(fā)明的技術方案。 參見圖l,圖1顯示了本發(fā)明所述方法100,包括以下步驟
101、 當手機軟件發(fā)生異常時,檢測手機系統(tǒng)是否收到調(diào)試指令。 當手機軟件發(fā)生異常時,檢測手機系統(tǒng)是否收到調(diào)試指令,若收到則
轉(zhuǎn)下一步驟。所述調(diào)試指令的類型包括第一調(diào)試指令信號和第二調(diào)試指令 信號。作為一實施例,所述第一調(diào)試指令信號為收到"#"鍵信號,第二調(diào) 試指令信號為收到"*"鍵信號。
在執(zhí)行該步驟時首先要判斷所述手機軟件是否異常,包括以下步驟(步 驟2.1及2. 2):
2.1、 建立數(shù)據(jù)庫,存儲手機軟件異常類型;
2.2、 檢測手機軟件狀態(tài)并和所述數(shù)據(jù)庫存儲的軟件異常類型進行比 對,若一致則判斷所述手機軟件狀態(tài)為異常。
102、 保存當前的內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)并將其生成腳本文件。 即保存所述手機系統(tǒng)當前的內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)并將其生成腳本文件。
103、 操作軟件仿真測試工具運行所述腳本文件進行異常的分析和測試。
本發(fā)明是基于Qualcomm CDMA QC6010單芯片平臺實現(xiàn)的,在此平臺上, 它的軟件異常類型包括data abort (數(shù)據(jù)中斷),prefetch abort (預讀 中斷),undefined instruct ion (不明搡作)等。如前所述,調(diào)試指令的 類型包括第一調(diào)試指令信號(收到"#"鍵信號)和第二調(diào)試指令信號(收 到"*"鍵信號)。在異常向量處理函數(shù)中,保存寄存器信息到一個全局結 構體變量中,然后在lcd上顯示異常類型,最后進入一個死循環(huán)函數(shù),在這 個函數(shù)中不斷的監(jiān)測是否有"*"或"#"鍵按下。參見圖2,手機出現(xiàn)軟件異常時,在異常界面(高通公司的原始程序會 在LCD上顯示一些相關信息),在鍵盤上按"#"鍵,則手機系統(tǒng)接收到第一
調(diào)試指令信號,手機會進入下載模式,接下來進行以下步驟的調(diào)試(參見 圖2中的流程200 ):
201、 將所述手機連接計算機并檢測是否接收到所述計算機發(fā)送的下載 指令。即將所述手機連接計算機并檢測是否接收到所述計算機發(fā)送的下載 指令,若有則轉(zhuǎn)下一步驟;
202、 下載所述手機系統(tǒng)當前的內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)至所述計算機, 并將其生成腳本文件存儲??梢砸罁?jù)高通原有的下載協(xié)議做的擴展開發(fā)相 關的軟件工具,增加把內(nèi)存和寄存器信息保存在計算機的命令(下載指令), 還可以實現(xiàn)連續(xù)發(fā)送寄存器和內(nèi)存信息至計算機端并保存為相應的文件, 生成供trace32 s imulator使用的腳本文件。
203、 運行腳本文件實施分析和調(diào)試。操作軟件仿真測試工具運行所述 步驟202生成的腳本文件進行所述軟件異常的分析和調(diào)試。利用trace32 siraulator工具執(zhí)行生成的腳本文件,腳本文件會自動把內(nèi)存信息,elf文 件加載,并設置相應的寄存器,從而可以通過寄存器R14,堆棧等信息去分 析異常的原因。
參見圖3,手機出現(xiàn)軟件異常時,在異常界面(高通公司的原始程序會 在LCD上顯示一些相關信息),在鍵盤上按"*"鍵,則手機系統(tǒng)接收到第二 調(diào)試指令信號,接下來進行以下步驟的調(diào)試(參見圖3中的流程300 ):
301、 建立所述手機的一特殊內(nèi)存空間,存儲所述手機系統(tǒng)當前的寄存 器信息和堆棧信息。此特殊的內(nèi)存空間在手機重啟后并不會被初始化為空 白,它還會被保持為原來的數(shù)值(前提是手機不斷電)。因為保存到此內(nèi) 存空間中的還有當前任務的整個堆棧,所以可以利用堆棧來追蹤函數(shù)的調(diào) 用關系。
302、 重啟所述手機系統(tǒng),重啟后將所述特殊內(nèi)存空間存儲的當前的寄 存器信息和堆棧信息轉(zhuǎn)存至所述手機文件系統(tǒng),同時將其生成腳本文件存 儲至所述手機文件系統(tǒng)。
303、 將所述手機連接計算機并將所述步驟302中的手機文件系統(tǒng)存儲的數(shù)據(jù)文件傳輸至所述計算機進行保存。
304、操作軟件仿真測試工具運行保存在所述計算機的腳本文件進行所 述軟件異常的分析和調(diào)試。利用trace32 simulator工具執(zhí)行生成的腳本文 件,腳本文件會自動把內(nèi)存信息、elf文件加載,并設置相應的寄存器,從 而可以通過寄存器R14,堆棧等信息去分析異常的原因。
本技術領域中的普通技術人員應當認識到,以上的實施例僅是用來說 明本發(fā)明,而并非用作為對本發(fā)明的限定,只要在本發(fā)明的實質(zhì)精神范圍 內(nèi),對以上實施例的變化、變型都將落在本發(fā)明的權利要求書范圍內(nèi)。
8
權利要求
1、一種手機軟件異常時的調(diào)試方法,其特征在于,包括以下步驟1.1、當手機軟件發(fā)生異常時,檢測手機系統(tǒng)是否收到調(diào)試指令,若收到則轉(zhuǎn)下一步驟;1.2、保存所述手機系統(tǒng)當前的內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)并將其生成腳本文件;1.3、操作軟件仿真測試工具運行所述腳本文件進行所述軟件異常的分析和測試。
2、 如權利要求l所述的方法,其特征在于,所述步驟l. l首先判斷所述 手機軟件是否異常,包括以下步驟2.1、 建立數(shù)據(jù)庫,存儲手機軟件異常類型;2.2、 檢測手機軟件狀態(tài)并和所述數(shù)據(jù)庫存儲的軟件異常類型進行比 對,若一致則判斷所述手機軟件狀態(tài)為異常。
3、 如權利要求1或2所述的方法,其特征在于,所述步驟l.l中的所述調(diào)試指令的類型包括第一調(diào)試指令信號和第二調(diào)試指令信號。
4、 如權利要求3所述的方法,其特征在于,所述步驟l.l接收到第一調(diào)試指令信號時,進行以下步驟的調(diào)試4. 1、將所述手機連接計算機并檢測是否接收到所述計算機發(fā)送的下載 指令,若有則轉(zhuǎn)下一步驟;4.2、下載所述手機系統(tǒng)當前的內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)至所述計算機, 并將其生成腳本文件存儲;4. 3、搡作軟件仿真測試工具運行所述步驟4. 3生成的腳本文件進行所述軟件異常的分析和調(diào)試。
5、 如權利要求3所述的方法,其特征在于,所述步驟l. l接收到第二調(diào)試指令信號時,進行以下步驟的調(diào)試5.1、 建立所述手機的一特殊內(nèi)存空間,存儲所述手機系統(tǒng)當前的寄存 器信息和堆棧信息;5.2、 重啟所述手機系統(tǒng),重啟后將所述特殊內(nèi)存空間存儲的當前的寄存器信息和堆棧信息轉(zhuǎn)存至所述手機文件系統(tǒng),同時將其生成腳本文件存儲至所述手機文件系統(tǒng);`5.3、將所述手機連接計算機并將所述步驟5.2中的手機文件系統(tǒng)存儲的數(shù)據(jù)文件傳輸至所述計算機進行保存;`5. 4、操作軟件仿真測試工具運行保存在所述計算機的腳本文件進行所 述軟件異常的分析和調(diào)試。
全文摘要
本發(fā)明揭示了一種手機軟件異常時的調(diào)試方法,該方法檢測到手機軟件異常時,將手機系統(tǒng)的內(nèi)存信息、寄存器信息以及其中的堆棧信息取出并保存在計算機或手機的文件系統(tǒng)中,同時生成相應的腳本文件,然后利用專業(yè)的軟件仿真測試工具運行所述腳本文件,對所述保存的信息進行分析和調(diào)試,以求找到手機異常的原因。
文檔編號G06F11/36GK101645033SQ200910051368
公開日2010年2月10日 申請日期2009年5月15日 優(yōu)先權日2009年5月15日
發(fā)明者都建強 申請人:上海聞泰電子科技有限公司