[發(fā)明專利]分析二進(jìn)制碼有效
| 申請?zhí)枺?/td> | 200680051763.2 | 申請日: | 2006-12-28 |
| 公開(公告)號: | CN101336428A | 公開(公告)日: | 2008-12-31 |
| 發(fā)明(設(shè)計)人: | M·C·范寧;N·P·奎熱拉;G·J·凡 | 申請(專利權(quán))人: | 微軟公司 |
| 主分類號: | G06F17/00 | 分類號: | G06F17/00;G06F17/30 |
| 代理公司: | 上海專利商標(biāo)事務(wù)所有限公司 | 代理人: | 顧嘉運(yùn) |
| 地址: | 美國華*** | 國省代碼: | 美國;US |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 分析 二進(jìn)制碼 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及用于分析二進(jìn)制代碼的方法和系統(tǒng)。
背景技術(shù)
計算機(jī)系統(tǒng)和相關(guān)技術(shù)影響社會的許多方面。的確,計算機(jī)系統(tǒng)處理信息的能力已改變了人們生活和工作的方式。計算機(jī)系統(tǒng)現(xiàn)在通常執(zhí)行許多任務(wù)(例如,文字處理、調(diào)度和數(shù)據(jù)庫管理),這些任務(wù)在計算機(jī)系統(tǒng)出現(xiàn)以前是人工執(zhí)行的。最近,計算機(jī)系統(tǒng)已被彼此耦合,并被耦合到其他電子設(shè)備,以形成計算機(jī)系統(tǒng)和其他電子設(shè)備可以在其上傳送電子數(shù)據(jù)的有線和無線計算機(jī)網(wǎng)絡(luò)。結(jié)果,在計算機(jī)系統(tǒng)處執(zhí)行的許多任務(wù)(例如,語音通信、訪問電子郵件、控制家用電子設(shè)備、Web瀏覽、以及打印文檔)包括多個計算機(jī)系統(tǒng)和/或其他電子設(shè)備之間經(jīng)由有線和/或無線計算機(jī)網(wǎng)絡(luò)的通信(例如,電子消息交換)。
從而,存在可響應(yīng)于軟件應(yīng)用程序的執(zhí)行而可由通用計算系統(tǒng)實(shí)現(xiàn)的大量的各種功能和應(yīng)用程序。然而,計算系統(tǒng)的效用和功能依賴于源代碼的正確編碼,源代碼被編譯或解釋成實(shí)際上由處理器執(zhí)行的二進(jìn)制指令。如果存在編碼或設(shè)計錯誤(通常被稱為“隱錯”),則這將常常導(dǎo)致與預(yù)期行為的背離。
此外,軟件編程員和設(shè)計者的創(chuàng)造性導(dǎo)致日益復(fù)雜且強(qiáng)大的軟件應(yīng)用程序。作為其復(fù)雜性。
在其他代碼分析機(jī)制中,針對進(jìn)行源控制的經(jīng)編譯代碼進(jìn)行遠(yuǎn)程(例如,基于服務(wù)器)的分析。某些分析是資源密集的且完成會花費(fèi)大量時間(例如,數(shù)小時)。在某些環(huán)境中,將這種類型的分析卸載給遠(yuǎn)程(以及潛在更強(qiáng)大)的計算機(jī)是有利的。使遠(yuǎn)程計算機(jī)系統(tǒng)執(zhí)行分析釋放了用于開發(fā)代碼的開發(fā)員的計算機(jī),而不會使資源密集的分析消耗資源。
然而,遠(yuǎn)程分析相比本地分析生成結(jié)果要花費(fèi)長得多的時間,例如通常徹夜進(jìn)行。因此,遠(yuǎn)程分析與本地代碼分析相比在生成結(jié)果時有更長等待時間。在眾多開發(fā)環(huán)境中,開發(fā)人員不能等待數(shù)個小時以便接收登錄的結(jié)果(例如,這可能要求基于這些結(jié)果的進(jìn)一步修改)。
此外,為了實(shí)現(xiàn)遠(yuǎn)程代碼分析,可要求開發(fā)人員開發(fā)用于通過調(diào)查和解決來管理問題的基礎(chǔ)結(jié)構(gòu)(例如,管理結(jié)果數(shù)據(jù)庫的web應(yīng)用程序)。遠(yuǎn)程代碼分析也阻止開發(fā)人員執(zhí)行代碼分析(例如,過程間分析)在登錄之前預(yù)先分析一組預(yù)期的改變。另外,在開發(fā)過程期間利用現(xiàn)有的遠(yuǎn)程代碼分析技術(shù)通常是太過昂貴的。從而,在某些開發(fā)環(huán)境中,開發(fā)人員由于時間和成本的限制轉(zhuǎn)而使用較不強(qiáng)大的本地代碼分析。
發(fā)明內(nèi)容
本發(fā)明涉及用于分析二進(jìn)制代碼的方法、系統(tǒng)和計算機(jī)程序產(chǎn)品。在某些實(shí)施例中,接收二進(jìn)制代碼和代碼分析規(guī)則。至少一個代碼分析規(guī)則指示與二進(jìn)制代碼的功能有關(guān)的查詢。用被配置成確定查詢結(jié)果的分析代碼實(shí)現(xiàn)查詢。確定查詢的有效結(jié)果不被高速緩存在結(jié)果存儲中。作為響應(yīng),調(diào)用分析代碼來確定查詢的結(jié)果。該結(jié)果被高速緩存在結(jié)果存儲中,使得當(dāng)在將來接收查詢時,可從結(jié)果存儲訪問結(jié)果而不必調(diào)用分析代碼來確定結(jié)果。返回查詢的結(jié)果,且所述方法進(jìn)一步包括:確定所述查詢的有效結(jié)果被高速緩存在結(jié)果存儲中;檢索被高速緩存的結(jié)果以避免對所述分析代碼的進(jìn)一步調(diào)用;以及返回所述查詢的結(jié)果。
在其他實(shí)施例中,接收二進(jìn)制代碼和代碼分析規(guī)則。至少一個代碼分析規(guī)則指示與二進(jìn)制代碼的功能有關(guān)的查詢。用被配置成確定查詢結(jié)果的分析代碼實(shí)現(xiàn)查詢。確定經(jīng)高速緩存的查詢結(jié)果被高速緩存在結(jié)果存儲中。在調(diào)用用來確定查詢的結(jié)果的分析代碼之后,經(jīng)高速緩存的結(jié)果被高速緩存到結(jié)果存儲中。確定結(jié)果是有效的。檢索經(jīng)高速緩存的結(jié)果,以避免對分析代碼的進(jìn)一步調(diào)用。返回經(jīng)高速緩存的查詢的結(jié)果;其中,所述方法進(jìn)一步包括:確定所述查詢的有效結(jié)果沒有被高速緩存在結(jié)果存儲中或被高速緩存的結(jié)果無效;調(diào)用所述分析代碼以確定所述查詢的結(jié)果;將所述結(jié)果高速緩存到結(jié)果存儲中,以便當(dāng)將來接收到所述查詢時可以從所述結(jié)果存儲訪問所述結(jié)果而不必調(diào)用所述分析代碼來確定所述結(jié)果。
在本發(fā)明的另一實(shí)施例中,揭示了一種用于分析二進(jìn)制代碼的計算機(jī)系統(tǒng),包括:
一個或多個處理器;
系統(tǒng)存儲器;以及
一個或多個其上存儲代碼分析模塊的計算機(jī)可執(zhí)行指令的計算機(jī)可讀存儲介質(zhì),所述代碼分析模塊被配置成執(zhí)行以下動作:
接收二進(jìn)制代碼;
接收代碼分析規(guī)則,至少一個代碼分析規(guī)則指示與所述二進(jìn)制代碼的功能相關(guān)聯(lián)的查詢,所述查詢用被配置成確定所述查詢的結(jié)果的分析代碼來實(shí)現(xiàn);
確定所述查詢的有效的經(jīng)高速緩存的結(jié)果是否被高速緩存在結(jié)果存儲中;
當(dāng)有效結(jié)果未被高速緩存時:
調(diào)用所述分析代碼來確定所述查詢的結(jié)果;以及
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于微軟公司,未經(jīng)微軟公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200680051763.2/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





