[發(fā)明專利]一種代碼動態(tài)分析的方法及裝置有效
| 申請?zhí)枺?/td> | 201210285223.8 | 申請日: | 2012-08-10 |
| 公開(公告)號: | CN103577304B | 公開(公告)日: | 2018-11-09 |
| 發(fā)明(設(shè)計)人: | 欒濤 | 申請(專利權(quán))人: | 百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司 |
| 主分類號: | G06F11/34 | 分類號: | G06F11/34 |
| 代理公司: | 北京鴻德海業(yè)知識產(chǎn)權(quán)代理事務(wù)所(普通合伙) 11412 | 代理人: | 袁媛 |
| 地址: | 100085 北京*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 代碼 動態(tài) 分析 方法 裝置 | ||
1.一種代碼動態(tài)分析的方法,包括:
A.在代碼的模塊調(diào)用處插入監(jiān)聽器,其中所述監(jiān)聽器用于在該處的調(diào)用發(fā)生時輸出與該次調(diào)用相關(guān)的日志信息;
B.運(yùn)行插入監(jiān)聽器后的代碼,以輸出由一條以上的日志信息構(gòu)成的日志文件;
C1.根據(jù)所述日志文件中的各條日志信息,繪制所述代碼在運(yùn)行期間的每個關(guān)鍵時刻的調(diào)用進(jìn)度圖像幀;
C2.利用每個關(guān)鍵時刻的調(diào)用進(jìn)度圖像幀,生成動態(tài)圖像文檔,并將所述動態(tài)圖像文檔作為所述代碼的分析結(jié)果,其中所述動態(tài)圖像文檔描述了所述代碼在多個運(yùn)行時刻的模塊調(diào)用進(jìn)度以及所述代碼運(yùn)行時同一時刻多個同時進(jìn)行的調(diào)用中每個調(diào)用的模塊調(diào)用關(guān)系。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟C1包括:
C11.提取各條日志信息中記錄的調(diào)用的開始時刻和結(jié)束時刻中的至少一個時刻作為所述代碼在運(yùn)行期間的關(guān)鍵時刻;
C12.針對每個關(guān)鍵時刻,確定該關(guān)鍵時刻同時進(jìn)行的調(diào)用,計算同時進(jìn)行的調(diào)用中的每個調(diào)用在該關(guān)鍵時刻的進(jìn)度,并依據(jù)每個調(diào)用的進(jìn)度繪制該關(guān)鍵時刻的調(diào)用進(jìn)度圖像幀。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟C12中,確定關(guān)鍵時刻T同時進(jìn)行的調(diào)用的步驟包括:
判斷各條日志信息中記錄的調(diào)用的開始時刻和結(jié)束時刻構(gòu)成的封閉區(qū)間是否覆蓋T,如果是,則將覆蓋T的封閉區(qū)間對應(yīng)的調(diào)用提取出來作為在關(guān)鍵時刻T同時進(jìn)行的調(diào)用中的一個。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟C12中,計算同時進(jìn)行的調(diào)用中的每個調(diào)用在關(guān)鍵時刻T的進(jìn)度的步驟包括:
根據(jù)各條日志信息中記錄的線程標(biāo)識,確定同時進(jìn)行的調(diào)用中的任意一個調(diào)用X在同一個線程中的所有子調(diào)用,將X在同一個線程中的所有子調(diào)用按照調(diào)用的時間順序排列,得到X的子調(diào)用序列;
利用X的子調(diào)用序列計算X在關(guān)鍵時刻T的進(jìn)度,其中:
當(dāng)X的第一個子調(diào)用的開始時刻大于關(guān)鍵時刻T時,確定X屬于去程調(diào)用,且去程調(diào)用的進(jìn)度采用下列公式計算:其中g(shù)o表示去程調(diào)用的進(jìn)度、key_time表示關(guān)鍵時刻T、x_stime表示X的開始時刻、call1_stime表示X的第一個子調(diào)用的開始時刻;當(dāng)關(guān)鍵時刻T大于X的最后一個子調(diào)用的結(jié)束時刻時,確定X屬于返程調(diào)用,且返程調(diào)用的進(jìn)度采用下列公式計算:其中back表示返程調(diào)用的進(jìn)度、x_etime表示X的結(jié)束時刻、calln_etime表示X的最后一個子調(diào)用的結(jié)束時刻。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述動態(tài)圖像文檔包括:幻燈片文檔、動畫文檔或視頻文檔。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟A中,至少在以下類型之一的模塊調(diào)用處插入監(jiān)聽器:服務(wù)訪問型調(diào)用或事件通知型調(diào)用。
7.一種代碼動態(tài)分析的裝置,包括:
插入單元,用于在代碼的模塊調(diào)用處插入監(jiān)聽器,其中所述監(jiān)聽器用于在該處的調(diào)用發(fā)生時輸出與該次調(diào)用相關(guān)的日志信息;
輸出單元,用于運(yùn)行插入監(jiān)聽器后的代碼,以輸出由一條以上的日志信息構(gòu)成的日志文件;
圖像幀生成單元,用于根據(jù)所述日志文件中的各條日志信息,繪制所述代碼在運(yùn)行期間的每個關(guān)鍵時刻的調(diào)用進(jìn)度圖像幀;
文檔生成單元,用于利用每個關(guān)鍵時刻的調(diào)用進(jìn)度圖像幀,生成動態(tài)圖像文檔,并將所述動態(tài)圖像文檔作為所述代碼的分析結(jié)果,其中所述動態(tài)圖像文檔描述了所述代碼在多個運(yùn)行時刻的模塊調(diào)用進(jìn)度以及所述代碼運(yùn)行時同一時刻多個同時進(jìn)行的調(diào)用中每個調(diào)用的模塊調(diào)用關(guān)系。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述圖像幀生成單元包括:
關(guān)鍵時刻確定單元,用于提取各條日志信息中記錄的調(diào)用的開始時刻和結(jié)束時刻中的至少一個時刻作為所述代碼在運(yùn)行期間的關(guān)鍵時刻;
進(jìn)度繪制單元,用于針對每個關(guān)鍵時刻,確定該關(guān)鍵時刻同時進(jìn)行的調(diào)用,計算同時進(jìn)行的調(diào)用中每個調(diào)用在該關(guān)鍵時刻的進(jìn)度,并依據(jù)每個調(diào)用的進(jìn)度繪制該關(guān)鍵時刻的調(diào)用進(jìn)度圖像幀。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司,未經(jīng)百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210285223.8/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 動態(tài)矢量譯碼方法和動態(tài)矢量譯碼裝置
- 動態(tài)口令的顯示方法及動態(tài)令牌
- 動態(tài)庫管理方法和裝置
- 動態(tài)令牌的身份認(rèn)證方法及裝置
- 令牌、動態(tài)口令生成方法、動態(tài)口令認(rèn)證方法及系統(tǒng)
- 一種動態(tài)模糊控制系統(tǒng)
- 一種基于動態(tài)信號的POS機(jī)和安全保護(hù)方法
- 圖像動態(tài)展示的方法、裝置、系統(tǒng)及介質(zhì)
- 一種基于POS機(jī)聚合碼功能分離顯示動態(tài)聚合碼的系統(tǒng)
- 基于動態(tài)口令的身份認(rèn)證方法、裝置和動態(tài)令牌





