本發(fā)明涉及Windows軟件產(chǎn)品的錯(cuò)誤分析領(lǐng)域,具體來講是一種用于Windows軟件產(chǎn)品的dump文件自動(dòng)分析統(tǒng)計(jì)方法及系統(tǒng)。
背景技術(shù):
現(xiàn)在很多軟件產(chǎn)品,例如Windows系統(tǒng)的軟件產(chǎn)品,為了提高用戶口碑,追求產(chǎn)品的穩(wěn)定性,希望在產(chǎn)品發(fā)生崩潰時(shí)記錄下產(chǎn)品崩潰時(shí)的運(yùn)行環(huán)境以及崩潰的原因,更希望能根據(jù)崩潰的原因按照崩潰次數(shù)進(jìn)行排序,以方便產(chǎn)品開發(fā)人員及時(shí)定位到程序的bug(漏洞)及優(yōu)先定位崩潰量比較大的bug,以提高代碼的質(zhì)量及產(chǎn)品的穩(wěn)定性。
目前,在Windows系統(tǒng)中,通常采用獲取用于記錄錯(cuò)誤信息的dump文件(一種轉(zhuǎn)儲(chǔ)文件,是Windows系統(tǒng)下在應(yīng)用程序崩潰時(shí),抓取應(yīng)用程序崩潰時(shí)的運(yùn)行環(huán)境及崩潰的原因,用于定位應(yīng)用程序崩潰的原因),并將dump文件上傳至Windows系統(tǒng)軟件產(chǎn)品的服務(wù)器進(jìn)行分析,來實(shí)現(xiàn)對(duì)產(chǎn)品的所有錯(cuò)誤的收集和處理。
但在實(shí)際操作中,收集大量的dump文件后,需要人力分析dump文件,同時(shí)也需要人力對(duì)產(chǎn)品崩潰原因進(jìn)行分類統(tǒng)計(jì)。而全由人工采用手動(dòng)進(jìn)行分析統(tǒng)計(jì)等,往往帶有較大程度的主觀性,使得分析、統(tǒng)計(jì)標(biāo)準(zhǔn)不統(tǒng)一;另外,在海量數(shù)據(jù)的場(chǎng)景下,dump文件信息數(shù)據(jù)往往維度多、數(shù)據(jù)量大,靠人工進(jìn)行分析、統(tǒng)計(jì)往往不準(zhǔn)確、覆蓋率也不夠高、重復(fù)性的工作也容易導(dǎo)致失誤,而且人工操作時(shí)間較長(zhǎng),效率較低,人力成本較大。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是為了克服上述背景技術(shù)的不足,提供一種用于Windows軟件產(chǎn)品的dump文件自動(dòng)分析統(tǒng)計(jì)方法及系統(tǒng),能對(duì)生成的dump文件進(jìn)行自動(dòng)分析和自動(dòng)分類統(tǒng)計(jì),不但準(zhǔn)確、高效、及時(shí)性強(qiáng),而且能極大的節(jié)省人力成本,滿足使用需求。
為達(dá)到以上目的,本發(fā)明提供一種用于Windows軟件產(chǎn)品的dump文件自動(dòng)分析統(tǒng)計(jì)方法,包括以下步驟:步驟S1:在客戶端的Windows軟件產(chǎn)品中集成用于實(shí)現(xiàn)dump抓取功能的函數(shù),轉(zhuǎn)入步驟S2;步驟S2:當(dāng)客戶端的Windows軟件產(chǎn)品的程序發(fā)生崩潰時(shí),利用步驟S1中集成的函數(shù),生成寫有dump信息的dump文件,轉(zhuǎn)入步驟S3;步驟S3:將生成的dump文件上傳到服務(wù)器端,轉(zhuǎn)入步驟S4;步驟S4:服務(wù)器端利用Windows提供的自動(dòng)分析工具對(duì)上傳的dump文件進(jìn)行分析,提取出所述dump信息,并生成分析結(jié)果文件,該分析結(jié)果文件中包括函數(shù)調(diào)用鏈信息,轉(zhuǎn)入步驟S5;步驟S5:服務(wù)器端對(duì)分析結(jié)果文件中的函數(shù)調(diào)用鏈信息進(jìn)行分類統(tǒng)計(jì),統(tǒng)計(jì)出計(jì)數(shù)最高的導(dǎo)致錯(cuò)誤的起始調(diào)用函數(shù);并根據(jù)所述起始調(diào)用函數(shù)定位出代碼中的bug,結(jié)束。
本發(fā)明還提供一種用于Windows軟件產(chǎn)品的dump文件自動(dòng)分析統(tǒng)計(jì)系統(tǒng),包括設(shè)置于客戶端的函數(shù)集成模塊、dump文件生成模塊、dump文件上傳模塊;以及設(shè)置于服務(wù)器端的dump文件分析模塊、分析結(jié)果統(tǒng)計(jì)模塊;
所述函數(shù)集成模塊用于:在Windows軟件產(chǎn)品中集成用于實(shí)現(xiàn)dump抓取功能的函數(shù);所述dump文件生成模塊用于:當(dāng)Windows軟件產(chǎn)品的程序發(fā)生崩潰時(shí),利用函數(shù)集成模塊集成的函數(shù),生成寫有dump信息的dump文件;所述dump文件上傳模塊用于:將dump文件上傳到服務(wù)器端;所述dump文件分析模塊用于:利用Windows提供的自動(dòng)分析工具對(duì)上傳的dump文件進(jìn)行分析,提取出dump信息,并生成分析結(jié)果文件,該分析結(jié)果文件中包括函數(shù)調(diào)用鏈信息;所述分析結(jié)果統(tǒng)計(jì)模塊用于:對(duì)分析結(jié)果文件中的函數(shù)調(diào)用鏈信息進(jìn)行分類統(tǒng)計(jì),統(tǒng)計(jì)出計(jì)數(shù)最高的導(dǎo)致錯(cuò)誤的起始調(diào)用函數(shù);并根據(jù)所述起始調(diào)用函數(shù)定位出代碼中的bug。
本發(fā)明的有益效果在于:
本發(fā)明提供了一種用于Windows軟件產(chǎn)品的dump文件自動(dòng)分析統(tǒng)計(jì)方法,能在客戶端中集成用于實(shí)現(xiàn)dump抓取功能的函數(shù);當(dāng)客戶端的Windows軟件產(chǎn)品的程序發(fā)生崩潰時(shí),利用集成的函數(shù)能生成寫有dump信息的dump文件;將生成的dump文件上傳到服務(wù)器端后,服務(wù)器端能利用Windows提供的自動(dòng)分析工具對(duì)上傳的dump文件進(jìn)行分析,提取出所述dump信息,并生成分析結(jié)果文件;對(duì)分析結(jié)果文件中的函數(shù)調(diào)用鏈信息進(jìn)行分類統(tǒng)計(jì),統(tǒng)計(jì)出計(jì)數(shù)最高的導(dǎo)致錯(cuò)誤的起始調(diào)用函數(shù)后,能根據(jù)該起始調(diào)用函數(shù)定位出代碼中的bug。與現(xiàn)有技術(shù)相比,本發(fā)明能對(duì)生成的dump文件進(jìn)行自動(dòng)分析和自動(dòng)分類統(tǒng)計(jì),從而快速發(fā)現(xiàn)和定位錯(cuò)誤,不但準(zhǔn)確、高效、及時(shí)性強(qiáng),而且能極大的節(jié)省人力成本,提高了軟件產(chǎn)品質(zhì)量,滿足使用需求,用戶體驗(yàn)佳。
附圖說明
圖1為本發(fā)明實(shí)施例中用于Windows軟件產(chǎn)品的dump文件自動(dòng)分析統(tǒng)計(jì)方法的流程圖;
圖2為本發(fā)明實(shí)施例中用于Windows軟件產(chǎn)品的dump文件自動(dòng)分析統(tǒng)計(jì)系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施方式
下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。
參見圖1所示,本發(fā)明實(shí)施例提供一種用于Windows軟件產(chǎn)品的dump文件自動(dòng)分析統(tǒng)計(jì)方法,包括以下步驟:
步驟S1:在客戶端的Windows軟件產(chǎn)品中集成用于實(shí)現(xiàn)dump抓取功能的函數(shù),轉(zhuǎn)入步驟S2。
可以理解的是,本實(shí)施例中,用于實(shí)現(xiàn)dump抓取功能的函數(shù)包括:異常處理設(shè)置函數(shù)SetUnhandledExceptionFilter、異常處理函數(shù)lpExceptionFunc、文件生成函數(shù)CreateFile和dump信息寫入函數(shù)MiniDumpWriteDump。在此基礎(chǔ)上,步驟S1具體包括以下流程:
步驟S101:將Windows系統(tǒng)API(Application Programming Interface,應(yīng)用編程接口)函數(shù)中的異常處理設(shè)置函數(shù)SetUnhandledExceptionFilter集成到客戶端的Windows軟件產(chǎn)品的程序中;并將所述異常處理設(shè)置函數(shù)SetUnhandledExceptionFilter的調(diào)用參數(shù)設(shè)置為異常處理函數(shù)lpExceptionFunc,轉(zhuǎn)入步驟S102。
通過此步驟的操作,可使客戶端系統(tǒng)發(fā)生錯(cuò)誤時(shí),自動(dòng)調(diào)用異常處理設(shè)置函數(shù)SetUnhandledExceptionFilter來設(shè)置異常處理函數(shù)lpExceptionFunc。該異常處理設(shè)置函數(shù)SetUnhandledExceptionFilter是在程序發(fā)生錯(cuò)誤最后接管程序的地方,且其調(diào)用函數(shù)為異常處理函數(shù)lpExceptionFunc,所以,當(dāng)錯(cuò)誤發(fā)生時(shí)會(huì)去調(diào)用異常處理函數(shù)lpExceptionFunc,從而將執(zhí)行流程轉(zhuǎn)入到異常處理函數(shù)lpExceptionFunc中。具體的實(shí)現(xiàn)代碼如下:
LPTOP_LEVEL_EXCEPTION_FILTER
SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER lpExceptionFunc);
步驟S102:在異常處理函數(shù)lpExceptionFunc中,創(chuàng)建一個(gè)用于生成dump文件的文件生成函數(shù)CreateFile,轉(zhuǎn)入步驟S103。
具體來說,所述文件生成函數(shù)CreateFile包括以下內(nèi)容:
HANDLE WINAPI CreateFile(
LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
);
其中,參數(shù)lpFileName是最終保存在磁盤的dump的文件名;
參數(shù)dwDesiredAccess傳入GENERIC_WRITE,表示寫入文件;
參數(shù)dwShareMode傳入0,表示獨(dú)占的方式寫入;
參數(shù)lpSecurityAttributes傳入NULL,表示不考慮安全屬性;
參數(shù)dwCreationDisposition傳入CREATE_ALWAYS,表示總是創(chuàng)建;
參數(shù)dwFlagsAndAttributes傳入FILE_ATTRIBUTE_NORMAL,表示為普通文件;
參數(shù)hTemplateFile傳入空,表示不是復(fù)制文件句柄。
步驟S103:將Windows系統(tǒng)API函數(shù)中的dump信息寫入函數(shù)MiniDumpWriteDump集成到當(dāng)前Windows軟件產(chǎn)品的程序中,該dump信息寫入函數(shù)MiniDumpWriteDump用于向生成的dump文件中寫入dump信息。
具體來說,所述dump信息寫入函數(shù)MiniDumpWriteDump包括以下內(nèi)容:
其中,參數(shù)hProcess傳入當(dāng)前進(jìn)程的句柄;
參數(shù)ProcessId傳入當(dāng)前進(jìn)程的id;
參數(shù)hFile傳入上面調(diào)用CreateFile返回的文件句柄;
參數(shù)DumpType傳入MiniDumpNormal,表示抓取的信息不包含整個(gè)內(nèi)存信息;
參數(shù)ExceptionParam傳入MINIDUMP_EXCEPTION_INFORMA TION的對(duì)象;
參數(shù)UserStreamParam傳入NULL,表示為空;
參數(shù)CallbackParam傳入NULL,表示為空。
步驟S2:當(dāng)客戶端的Windows軟件產(chǎn)品的程序發(fā)生崩潰(或異常)時(shí),利用步驟S1中集成的函數(shù),生成寫有dump信息的dump文件,轉(zhuǎn)入步驟S3;其中,所述dump信息包括:程序出錯(cuò)的原因,出錯(cuò)的源代碼的所在文件的行號(hào),程序出錯(cuò)時(shí)的函數(shù)調(diào)用鏈信息,調(diào)用的函數(shù)名字和源代碼文件名等。
實(shí)際操作時(shí),步驟S2具體包括以下流程:
當(dāng)客戶端的Windows軟件產(chǎn)品的程序發(fā)生崩潰時(shí),Windows系統(tǒng)會(huì)調(diào)用異常處理設(shè)置函數(shù)SetUnhandledExceptionFilter設(shè)置的異常處理函數(shù)lpExceptionFunc;異常處理函數(shù)lpExceptionFunc會(huì)調(diào)用文件生成函數(shù)CreateFile創(chuàng)建一個(gè)dump文件;再通過調(diào)用dump信息寫入函數(shù)MiniDumpWriteDump將所述dump信息寫入dump文件中,從而生成寫有dump信息的dump文件。
步驟S3:將生成的dump文件上傳到服務(wù)器端,轉(zhuǎn)入步驟S4。具體操作時(shí),可使用網(wǎng)絡(luò)套接字將生成的dump文件上傳到服務(wù)器端。
步驟S4:服務(wù)器端利用Windows提供的自動(dòng)分析工具對(duì)上傳的dump文件進(jìn)行分析,提取出所述dump信息,并生成分析結(jié)果文件,該分析結(jié)果文件中包括函數(shù)調(diào)用鏈信息且該文件格式為TXT文件,轉(zhuǎn)入步驟S5。
本實(shí)施例中,服務(wù)器端利用的自動(dòng)分析工具是Windows提供的cdb程序工具(即cdb.exe)。該cdb程序工具是Windows提供的一個(gè)用來分析dump文件的工具,通過命令行的方式來運(yùn)行,通過命令行參數(shù)來指定cdb分析的文件,及分析的命令。
具體來說,命令.ecxr可以讓cdb程序來讀取dump文件中程序出錯(cuò)的原因;命令kb可以讓cdb程序來讀取dump文件中程序崩潰時(shí)的函數(shù)調(diào)用鏈信息。有了出錯(cuò)的原因可以馬上知道程序?yàn)槭裁闯鲥e(cuò),有了函數(shù)調(diào)用鏈信息可以知道出錯(cuò)的位置是從應(yīng)用程序的那個(gè)函數(shù)調(diào)用開始的。
實(shí)際操作時(shí),cdb程序工具的調(diào)用方式如下:
cdb.exe-y SymbolPath-i ImagePath-z DumpFileName-logo ResultFileName".ecxr;kb;q"
其中,SymbolPath是應(yīng)用程序編譯時(shí)生成的PDB(Program Database File,程序數(shù)據(jù)庫(kù)文件);Windows提供PDB文件是用來幫助軟件的調(diào)試的,生成應(yīng)用程序的時(shí)候就會(huì)自動(dòng)生成;
ImagePath是應(yīng)用程序EXE的路徑;
DumpFileName是需要分析的dump文件名;
ResultFileName是分析結(jié)果的保存文件名;
".ecxr;kb;q"是cdb的命令,包括分析出錯(cuò)原因和調(diào)用鏈,以及退出程序。
通過調(diào)用上述命令等則可獲取到相應(yīng)的dump信息,從而生成分析結(jié)果文件。
步驟S5:服務(wù)器端對(duì)分析結(jié)果文件中的函數(shù)調(diào)用鏈信息進(jìn)行分類統(tǒng)計(jì),統(tǒng)計(jì)出計(jì)數(shù)最高的導(dǎo)致錯(cuò)誤的起始調(diào)用函數(shù);并根據(jù)該起始調(diào)用函數(shù)定位出代碼中的bug,結(jié)束。
可以理解的是,本發(fā)明的函數(shù)調(diào)用鏈信息其實(shí)就是函數(shù)調(diào)用的層級(jí)信息,由于該層級(jí)信息可能有多數(shù)層級(jí),因此,為了高效、準(zhǔn)確的進(jìn)行分類統(tǒng)計(jì),本發(fā)明在對(duì)分析結(jié)果文件中的函數(shù)調(diào)用鏈信息進(jìn)行分類統(tǒng)計(jì)時(shí),是對(duì)指定的調(diào)用鏈層級(jí)數(shù)的內(nèi)容進(jìn)行分類統(tǒng)計(jì)的,若指定的調(diào)用鏈層級(jí)數(shù)大于實(shí)際的調(diào)用鏈層級(jí)數(shù),則是對(duì)實(shí)際的調(diào)用鏈層級(jí)數(shù)的內(nèi)容進(jìn)行分類統(tǒng)計(jì)。例如,指定的調(diào)用鏈層級(jí)數(shù)為5層,而實(shí)際的函數(shù)調(diào)用鏈只有3層,則分類統(tǒng)計(jì)時(shí)只統(tǒng)計(jì)3層的內(nèi)容。所述指定的調(diào)用鏈層級(jí)數(shù)是一個(gè)經(jīng)驗(yàn)值,通常指定為5層~10層,具體數(shù)值可以依據(jù)各個(gè)軟件具體情況而定。
進(jìn)一步的,實(shí)際操作中,所述分析結(jié)果文件中還可以包含出錯(cuò)的原因信息,則步驟S5在對(duì)分析結(jié)果文件中的函數(shù)調(diào)用鏈信息進(jìn)行分類統(tǒng)計(jì)時(shí),可結(jié)合該出錯(cuò)的原因信息進(jìn)行有效的分類統(tǒng)計(jì),可幫助快速的定位bug。
本發(fā)明中,通過對(duì)函數(shù)調(diào)用鏈信息進(jìn)行分類統(tǒng)計(jì),找到起始調(diào)用函數(shù)并最終定位出bug的原理分析如下:
從步驟S4得到了分析結(jié)果文件后,該分析結(jié)果文件中會(huì)有發(fā)生錯(cuò)誤時(shí)的函數(shù)調(diào)用鏈信息(就是函數(shù)調(diào)用的層級(jí)信息,可以知道從哪個(gè)起始函數(shù)調(diào)用出錯(cuò)的),通過對(duì)該函數(shù)調(diào)用鏈信息進(jìn)行分類統(tǒng)計(jì)就可以獲取到最終導(dǎo)致錯(cuò)誤的起始調(diào)用函數(shù)(起始調(diào)用函數(shù)是指導(dǎo)致錯(cuò)誤代碼發(fā)生的最早的調(diào)用函數(shù)),通過該起始調(diào)用函數(shù)可以發(fā)現(xiàn)代碼中的bug,因?yàn)槌鲥e(cuò)時(shí)要么就是在底層函數(shù)出錯(cuò),要么是在當(dāng)前代碼出錯(cuò),如果是底層代碼出錯(cuò)只有通過尋找最上層的調(diào)用函數(shù)才能找到bug,如果是在當(dāng)前層出錯(cuò)則當(dāng)前層就是調(diào)用函數(shù),如果是同樣的錯(cuò)誤那么其調(diào)用鏈會(huì)是一樣的,找到的調(diào)用函數(shù)也是會(huì)是一樣的,所以本發(fā)明通過統(tǒng)計(jì)指定層級(jí)數(shù)的函數(shù)調(diào)用鏈,就能追尋到導(dǎo)致錯(cuò)誤的起始調(diào)用函數(shù),從而定位出bug。
下面舉一例來對(duì)上述分類統(tǒng)計(jì)的實(shí)際過程進(jìn)行詳細(xì)說明。假設(shè)在分析在分析結(jié)果文件中,會(huì)有這樣一行信息:
ChildEBP RetAddr Args to Child,則這行信息代表接下來是顯示所有的調(diào)用鏈。其中,ChildEBP表示是CPU寄存器EBP(Extended Base Pointer,擴(kuò)展基址指針寄存器)的值;RetAddr表示函數(shù)調(diào)用返回地址;Args to Child表示當(dāng)前調(diào)用函數(shù)的參數(shù);然后緊跟的是函數(shù)的具體名字。
假設(shè)一條調(diào)用鏈信息如下:
41b1fbb8 7762585e 02348f2c 00000001 3640fc8c douyuTool!TimerEx::TimerRoutine+0x73
e:\douyutool\timerex.cpp
其中,douyuTool!TimerEx::TimerRoutine則是具體的調(diào)用函數(shù);
e:\douyutool\timerex.cpp對(duì)應(yīng)的則是具體代碼的源文件名字。
將douyuTool!TimerEx::TimerRoutine記錄下來算做是一個(gè)調(diào)用函數(shù),將多條調(diào)用函數(shù)的信息統(tǒng)計(jì)起來,如果一個(gè)分析結(jié)果文件中的統(tǒng)計(jì)的5層的調(diào)用鏈的函數(shù)是一樣的,說明錯(cuò)誤是一樣的,對(duì)一樣的進(jìn)行計(jì)數(shù),不一樣的則分別計(jì)數(shù),如果統(tǒng)計(jì)的計(jì)數(shù)最高的則說明發(fā)生此類錯(cuò)誤是最多的,可以優(yōu)先定位此類錯(cuò)誤,解決發(fā)生bug最多的地方,提高軟件質(zhì)量。
參見圖2所示,本發(fā)明實(shí)施例還提供一種用于Windows軟件產(chǎn)品的dump文件自動(dòng)分析統(tǒng)計(jì)系統(tǒng),包括設(shè)置于客戶端的函數(shù)集成模塊、dump文件生成模塊、dump文件上傳模塊;以及設(shè)置于服務(wù)器端的dump文件分析模塊、分析結(jié)果統(tǒng)計(jì)模塊。
其中,函數(shù)集成模塊用于:在Windows軟件產(chǎn)品中集成用于實(shí)現(xiàn)dump抓取功能的函數(shù);其具體流程為:將Windows系統(tǒng)API函數(shù)中的異常處理設(shè)置函數(shù)集成到客戶端的Windows軟件產(chǎn)品的程序中,并將所述異常處理設(shè)置函數(shù)的調(diào)用參數(shù)設(shè)置為異常處理函數(shù);在異常處理函數(shù)中,創(chuàng)建一個(gè)用于生成dump文件的文件生成函數(shù);將Windows系統(tǒng)API函數(shù)中的dump信息寫入函數(shù)集成到客戶端的Windows軟件產(chǎn)品的程序中。
dump文件生成模塊用于:當(dāng)Windows軟件產(chǎn)品的程序發(fā)生崩潰時(shí),利用函數(shù)集成模塊集成的函數(shù),生成寫有dump信息的dump文件;其具體流程為:當(dāng)Windows軟件產(chǎn)品的程序發(fā)生崩潰時(shí),調(diào)用所述異常處理設(shè)置函數(shù)設(shè)置的異常處理函數(shù);所述異常處理函數(shù)會(huì)調(diào)用文件生成函數(shù)創(chuàng)建一個(gè)dump文件;再通過調(diào)用dump信息寫入函數(shù)將dump信息寫入dump文件中,生成寫有dump信息的dump文件。
dump文件上傳模塊用于:使用網(wǎng)絡(luò)套接字將dump文件上傳到服務(wù)器端。
dump文件分析模塊用于:利用Windows提供的自動(dòng)分析工具對(duì)上傳的dump文件進(jìn)行分析,提取出dump信息,并生成分析結(jié)果文件,該分析結(jié)果文件中包括函數(shù)調(diào)用鏈信息;本實(shí)施例中,上述自動(dòng)分析工具為Windows提供的cdb程序工具。
分析結(jié)果統(tǒng)計(jì)模塊用于:對(duì)分析結(jié)果文件中的函數(shù)調(diào)用鏈信息進(jìn)行分類統(tǒng)計(jì),統(tǒng)計(jì)出計(jì)數(shù)最高的導(dǎo)致錯(cuò)誤的起始調(diào)用函數(shù);并根據(jù)所述起始調(diào)用函數(shù)定位出代碼中的bug。本實(shí)施例中,分析結(jié)果統(tǒng)計(jì)模塊對(duì)分析結(jié)果文件中的函數(shù)調(diào)用鏈信息進(jìn)行分類統(tǒng)計(jì)時(shí),是對(duì)指定的調(diào)用鏈層級(jí)數(shù)的內(nèi)容進(jìn)行分類統(tǒng)計(jì);若指定的調(diào)用鏈層級(jí)數(shù)大于實(shí)際的調(diào)用鏈層級(jí)數(shù),則是對(duì)實(shí)際的調(diào)用鏈層級(jí)數(shù)的內(nèi)容進(jìn)行分類統(tǒng)計(jì)。
需要說明的是:上述實(shí)施例提供的系統(tǒng)在進(jìn)行操作時(shí),僅以上述各功能模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將系統(tǒng)的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。
本發(fā)明不局限于上述實(shí)施方式,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也視為本發(fā)明的保護(hù)范圍之內(nèi)。
本說明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。