本發(fā)明涉及計算機領域,尤其涉及一種信息監(jiān)控方法及裝置。
背景技術:
分布式系統(tǒng)是個由多個互相連接的處理資源組成的計算機系統(tǒng),它們在整個系統(tǒng)的控制下協(xié)同執(zhí)行同一個任務,最少依賴于集中的程序、數(shù)據(jù)或硬件。這些處理資源稱為節(jié)點,所述節(jié)點可以是客戶端,也可以是服務器。
分布式監(jiān)控系統(tǒng)是對所述分布式系統(tǒng)中的各個節(jié)點進行監(jiān)控的系統(tǒng)。所述分布式監(jiān)控系統(tǒng)一般包括信息采集系統(tǒng)和信息分析系統(tǒng)。所述信息采集系統(tǒng)布置在各個節(jié)點中,用于對各個節(jié)點內部的方法之間的調用關系狀態(tài)信息進行采集,并以日志的形式發(fā)送到信息分析系統(tǒng)中進行分析。所述采集所述調用關系的代碼稱為監(jiān)控代碼,所述節(jié)點內部的方法稱為被監(jiān)控代碼。
傳統(tǒng)的信息采集系統(tǒng)是將監(jiān)控代碼手動加入到節(jié)點的被監(jiān)控代碼中,當節(jié)點的被監(jiān)控代碼數(shù)量較多,和/或節(jié)點的數(shù)量較多時,這種方式顯然效率非常低下。
技術實現(xiàn)要素:
為了解決現(xiàn)有技術中存在的技術問題,本發(fā)明提供了一種信息監(jiān)控方法和裝置,提高了監(jiān)控代碼的植入效率。
本發(fā)明實施例提供了一種信息監(jiān)控方法,所述方法包括:
預先設置配置文件,所述配置文件中包括被監(jiān)控代碼的名稱和路徑;
根據(jù)所述被監(jiān)控代碼的名稱和路徑獲取所述被監(jiān)控代碼,并將監(jiān)控代碼植入到所述被監(jiān)控代碼中;
若所述被監(jiān)控代碼被執(zhí)行,則運行所述監(jiān)控代碼,以生成所述被監(jiān)控代碼的被監(jiān)控信息,實現(xiàn)對所述被監(jiān)控代碼的監(jiān)控。
優(yōu)選的,所述將監(jiān)控代碼植入到所述被監(jiān)控代碼中包括:
將監(jiān)控代碼的起始語句插到所述被監(jiān)控代碼的首句之前,將所述監(jiān)控代碼的結束語句插到所述被監(jiān)控代碼的尾句之后。
優(yōu)選的,所述若所述被監(jiān)控代碼被執(zhí)行,則運行所述監(jiān)控代碼,以生成所述被監(jiān)控代碼的被監(jiān)控信息包括:
若所述被監(jiān)控代碼被調用,則運行所述監(jiān)控代碼,以生成所述被監(jiān)控代碼的被調用信息。
優(yōu)選的,所述被監(jiān)控代碼包括第一被監(jiān)控代碼和第二被監(jiān)控代碼;
所述若所述被監(jiān)控代碼被調用,則運行所述監(jiān)控代碼,以生成所述被監(jiān)控代碼的被調用信息包括:若所述第一被監(jiān)控代碼被執(zhí)行,則運行所述第一被監(jiān)控代碼的監(jiān)控代碼,以生成所述第一被監(jiān)控代碼的監(jiān)控日志,所述第一被監(jiān)控代碼的監(jiān)控日志中包括所述第一被監(jiān)控代碼的唯一標識、所述第一被監(jiān)控代碼的起始執(zhí)行時間和結束執(zhí)行時間;
若所述第二被監(jiān)控代碼被所述第一被監(jiān)控代碼調用,則運行所述第二被監(jiān)控代碼的監(jiān)控代碼,以生成所述第二被監(jiān)控代碼的監(jiān)控日志,所述第二被監(jiān)控代碼的監(jiān)控日志中包括所述第二被監(jiān)控代碼的唯一標識、所述第二被監(jiān)控代碼的起始執(zhí)行時間和結束執(zhí)行時間以及所述第一被監(jiān)控代碼的唯一標識。
優(yōu)選的,所述方法還包括:
根據(jù)所述第一被監(jiān)控代碼的監(jiān)控日志和所述第二被監(jiān)控代碼的監(jiān)控日志建立所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼之間的調用關系。
優(yōu)選的,所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在同一個被監(jiān)控設備中或在不同的被監(jiān)控設備中。
優(yōu)選的,若所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在同一個被監(jiān)控設備中,則所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在同一個線程執(zhí)行;
所述第一被監(jiān)控代碼的監(jiān)控日志和所述第二被監(jiān)控代碼的監(jiān)控日志中還包括:與所述同一個線程對應的線程標識。
優(yōu)選的,若所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在不同的被監(jiān)控設備中,則所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在不同的線程中執(zhí)行;
所述第一被監(jiān)控代碼的監(jiān)控日志和所述第二被監(jiān)控代碼的監(jiān)控日志中還包括:與所述不同的線程對應的相同的線程標識。
優(yōu)選的,所述被監(jiān)控代碼的路徑包括:
所述被監(jiān)控代碼的包路徑和/或所述被監(jiān)控代碼的類路徑。
本發(fā)明實施例還提供了一種信息監(jiān)控裝置,所述裝置包括:配置文件設置單元、代碼植入單元和被監(jiān)控信息生成單元;
其中,所述配置文件設置單元,用于預先設置配置文件,所述配置文件中包括被監(jiān)控代碼的名稱和路徑;
所述代碼植入單元,用于根據(jù)所述被監(jiān)控代碼的名稱和路徑獲取所述被監(jiān)控代碼,并將監(jiān)控代碼植入到所述被監(jiān)控代碼中;
所述被監(jiān)控信息生成單元,用于若所述被監(jiān)控代碼被執(zhí)行,則運行所述監(jiān)控代碼,以生成所述被監(jiān)控代碼的被監(jiān)控信息,實現(xiàn)對所述被監(jiān)控代碼的監(jiān)控。
相對于現(xiàn)有技術手動將監(jiān)控代碼一個一個植入到被監(jiān)控代碼中的方式,本實施例只要在配置文件中配置了被監(jiān)控代碼的名稱和路徑,就能實現(xiàn)自動將監(jiān)控代碼植入到所述被監(jiān)控代碼中的目的,提高監(jiān)控代碼的植入效率。
附圖說明
為了更清楚地說明本申請實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1為本發(fā)明提供的一種信息監(jiān)控方法實施例一的流程圖;
圖2為本發(fā)明提供的一種信息監(jiān)控裝置實施例一的結構框圖。
具體實施方式
為了使本技術領域的人員更好地理解本發(fā)明方案,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
方法實施例一:
參見圖1,該圖為本發(fā)明提供的一種信息監(jiān)控方法實施例一的流程圖。
本實施例提供的信息監(jiān)控方法包括如下步驟:
步驟S101:預先設置配置文件,所述配置文件中包括被監(jiān)控代碼的路徑。
所述配置文件中設置有被監(jiān)控代碼的名稱和路徑,所述被監(jiān)控代碼的路徑是指所述被監(jiān)控代碼在被監(jiān)控系統(tǒng)中存放的地方。若所述被監(jiān)控代碼是由java程序寫的,那么所述被監(jiān)控代碼的路徑可以是所述被監(jiān)控代碼的包路徑和/或所述被監(jiān)控代碼的類路徑。
例如,所述配置文件中包括的被監(jiān)控代碼的類路徑可以是:
regClazz=com.sohu.ott.api.service.AlbumService,com.sohu.ott.*
所述配置文件中包括的被監(jiān)控代碼名稱可以為:
regMethod=com.sohu.ott.solr.provider.service.impl.SolrV3ServiceImpl.queryByAlbumId
步驟S102:根據(jù)所述被監(jiān)控代碼的名稱和路徑獲取所述被監(jiān)控代碼,并將監(jiān)控代碼植入到所述被監(jiān)控代碼中。
在本實施例中,根據(jù)所述被監(jiān)控代碼的路徑和名稱就可以獲取到所述被監(jiān)控代碼。當獲取到所述被監(jiān)控代碼后,將監(jiān)控代碼自動植入到被監(jiān)控代碼中。
具體的,在實際應用中,所述監(jiān)控代碼可以具有起始語句和結束語句,即Start語句和end語句,那么在植入的過程中,可以將所述監(jiān)控代碼的起始語句插入到所述被監(jiān)控代碼的首句之前,將所述監(jiān)控代碼的結束語句插入到所述被監(jiān)控代碼的尾句之后,這樣,所述監(jiān)控代碼就可以監(jiān)控到所述被監(jiān)控代碼執(zhí)行的全部狀況。
相對于現(xiàn)有技術手動將監(jiān)控代碼一個一個植入到被監(jiān)控代碼中的方式,本實施例只要在配置文件中配置了被監(jiān)控代碼的名稱和路徑,就能實現(xiàn)自動將監(jiān)控代碼植入到所述被監(jiān)控代碼中的目的,提高監(jiān)控代碼的植入效率。
步驟S103:若所述被監(jiān)控代碼被執(zhí)行,則運行所述監(jiān)控代碼,以生成所述被監(jiān)控代碼的被監(jiān)控信息,實現(xiàn)對所述被監(jiān)控代碼的監(jiān)控。
在本實施例中,若所述被監(jiān)控代碼被執(zhí)行,則運行所述監(jiān)控代碼,以生成所述被監(jiān)控代碼的被監(jiān)控信息。所述對所述被監(jiān)控代碼的被監(jiān)控信息可以有很多種。例如,可以監(jiān)控所述被監(jiān)控代碼是否成功執(zhí)行;或者,可以通過監(jiān)控所述被監(jiān)控代碼的起始執(zhí)行時間和結束執(zhí)行時間,得到二者之間的時間差,從而判斷所述被監(jiān)控代碼是否出現(xiàn)執(zhí)行超時情況;亦或者,還可以監(jiān)控所述被監(jiān)控代碼在執(zhí)行過程中出現(xiàn)的其他異常情況,例如網(wǎng)絡異常,數(shù)據(jù)庫異常,空指針異常,自定義異常等等。
當所述被監(jiān)控代碼為多個時,還可以通過所述監(jiān)控代碼監(jiān)控所述被監(jiān)控代碼之間的相互調用關系。
具體的,假設所述被監(jiān)控代碼包括第一被監(jiān)控代碼和第二被監(jiān)控代碼。當所述第一被監(jiān)控代碼被執(zhí)行時,運行所述第一被監(jiān)控代碼的監(jiān)控代碼,以生成所述第一被監(jiān)控代碼的監(jiān)控日志,所述第一被監(jiān)控代碼的監(jiān)控日志中包括所述第一被監(jiān)控代碼的唯一標識、所述第一被監(jiān)控代碼的起始執(zhí)行時間和結束執(zhí)行時間。
若所述第二被監(jiān)控代碼被所述第一被監(jiān)控代碼調用,則運行所述第二被監(jiān)控代碼的監(jiān)控代碼,以生成所述第二被監(jiān)控代碼的監(jiān)控日志,所述第二被監(jiān)控代碼的監(jiān)控日志中包括所述第二被監(jiān)控代碼的唯一標識、所述第二被監(jiān)控代碼的起始執(zhí)行時間和結束執(zhí)行時間以及所述第一被監(jiān)控代碼的唯一標識。
然后,可以根據(jù)所述第一被監(jiān)控代碼的監(jiān)控日志和所述第二被監(jiān)控代碼的監(jiān)控日志建立所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼之間的調用關系。
具體的,因為所述第一被監(jiān)控代碼調用了所述第二被監(jiān)控代碼,因此所述第一被監(jiān)控代碼的起始執(zhí)行時間早于所述第二被監(jiān)控代碼的起始執(zhí)行時間,且所述第一被監(jiān)控代碼的結束執(zhí)行時間晚于所述第二被監(jiān)控代碼的結束執(zhí)行時間。根據(jù)這個規(guī)律以及所述第二被監(jiān)控代碼的監(jiān)控日志中存儲的第一被監(jiān)控代碼的唯一標識,確定所述第二被監(jiān)控代碼被所述第一被監(jiān)控代碼調用的調用關系。
假設所述被監(jiān)控代碼還包括第三被監(jiān)控代碼,且所述第三被監(jiān)控代碼被所述第二被監(jiān)控代碼調用,則根據(jù)第二被監(jiān)控代碼的起始執(zhí)行時間早于所述第三被監(jiān)控代碼的起始執(zhí)行時間,且所述第二被監(jiān)控代碼的結束執(zhí)行時間晚于所述第三被監(jiān)控代碼的結束執(zhí)行時間的規(guī)律,以及所述第三被監(jiān)控代碼的監(jiān)控日志中存儲的第二被監(jiān)控代碼的唯一標識,確定所述第三被監(jiān)控代碼被所述第二被監(jiān)控代碼調用的調用關系。
以此類推。
在實際應用中,所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼可以在同一個被監(jiān)控設備中,也可以在不同的被監(jiān)控設備中。
若所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在同一個被監(jiān)控設備X中,且由于所述第二被監(jiān)控代碼被所述第一被監(jiān)控代碼所調用,則所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼可以在同一個線程執(zhí)行,在該線程中,首先執(zhí)行所述第一被監(jiān)控代碼,然后執(zhí)行所述第二被監(jiān)控代碼。
一條調用鏈可以對應一個線程,所述調用鏈是指具有調用關系的各個被監(jiān)控代碼形成的鏈條。例如,在第一線程中,所述第一被監(jiān)控代碼在執(zhí)行的過程中調用了所述第二被監(jiān)控代碼,所述第二被監(jiān)控代碼在執(zhí)行的過程中調用了第三被監(jiān)控代碼,那么所述第一被監(jiān)控代碼、所述第二被監(jiān)控代碼和所述第三被監(jiān)控代碼形成一條調用鏈。
再例如,在第二線程中,所述第一被監(jiān)控代碼在執(zhí)行的過程中先后調用了所述第二被監(jiān)控代碼和第四被監(jiān)控代碼,那么所述第一被監(jiān)控代碼、所述第二被監(jiān)控代碼和所述第四被監(jiān)控代碼形成一條調用鏈。
為了區(qū)分不同的調用鏈,每條調用鏈均分別對應一個自己的、獨特的線程標識。所述線程標識可以由線程建立的第一個被監(jiān)控代碼對應的監(jiān)控代碼執(zhí)行時生成。
例如,在上兩個例子中,所述第一線程中第一個執(zhí)行的被監(jiān)控代碼為所述第一被監(jiān)控代碼,那么可以由所述第一被監(jiān)控代碼對應的監(jiān)控代碼執(zhí)行生成與所述第一線程對應的線程標識A。
除了在所述第一被監(jiān)控代碼的與所述第一線程對應的監(jiān)控日志M1中存儲有所述線程標識A,在所述第一被監(jiān)控代碼調用所述第二被監(jiān)控代碼,進而生成所述第二被監(jiān)控代碼的、與所述第一線程對應的監(jiān)控日志N1時,可以將所述線程標識A存儲在所述第二被監(jiān)控對象的監(jiān)控日志N1中。同理,所述第三被監(jiān)控代碼的監(jiān)控日志中也可以存儲有所述線程標識A。
所述第二線程中第一個執(zhí)行的被監(jiān)控代碼也為所述第一被監(jiān)控代碼,那么可以由所述第一被監(jiān)控代碼對應的監(jiān)控代碼執(zhí)行生成與所述第二線程對應的線程標識B。
除了在所述第一被監(jiān)控代碼的、與所述第二線程對應的監(jiān)控日志M2中存儲有所述線程標識B,在所述第一被監(jiān)控代碼調用所述第二被監(jiān)控代碼,進而生成所述第二被監(jiān)控代碼的、與所述第二線程對應的監(jiān)控日志N2時,可以將所述線程標識B存儲在所述第二被監(jiān)控對象的監(jiān)控日志N2中。同理,所述第四被監(jiān)控代碼的監(jiān)控日志中也可以存儲有所述線程標識B。
這樣,在對所述被監(jiān)控設備X的所有監(jiān)控日志進行整理時,就可以根據(jù)所述線程標識進行分類,具有相同線程標識的監(jiān)控日志為一類,然后再根據(jù)所述監(jiān)控日志中記錄的被監(jiān)控代碼的起始執(zhí)行時間和結束執(zhí)行時間形成所述調用鏈。
若所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在不同的被監(jiān)控設備中,則所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在不同的線程中執(zhí)行。為了獲得所述第一被監(jiān)控代碼調用所述第二被監(jiān)控代碼的調用信息,可以通過同一個線程標識將所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼“串聯(lián)”起來。
具體的,假設所述第一被監(jiān)控代碼在被監(jiān)控設備Y1的線程執(zhí)行,所述第二被監(jiān)控代碼在被監(jiān)控設備Y2的線程執(zhí)行。當所述第一被監(jiān)控代碼執(zhí)行時,所述第一被監(jiān)控代碼的監(jiān)控代碼執(zhí)行,生成所述第一被監(jiān)控代碼的唯一標識、所述被監(jiān)控設備Y1的線程的線程標識C以及所述第一被監(jiān)控代碼的起始執(zhí)行時間和結束執(zhí)行時間。
當所述第一被監(jiān)控代碼在執(zhí)行過程中需要調用第二被監(jiān)控代碼時,所述被監(jiān)控設備Y1將所述第一被監(jiān)控代碼對應的線程標識C發(fā)送到所述被監(jiān)控設備Y2,以使所述第二被監(jiān)控代碼在所述被監(jiān)控設備Y2的線程中執(zhí)行時,將所述線程標識C存儲在所述第二被監(jiān)控代碼的監(jiān)控日志中。所述第一被監(jiān)控設備Y1和所述第二被監(jiān)控設備Y2之間可以之間進行通訊,也可以借助于中間件進行通信。
這樣,在對所述被監(jiān)控設備Y1和Y2的所有監(jiān)控日志進行整理時,就可以根據(jù)所述線程標識C將所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼關聯(lián)起來,然后再根據(jù)所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼各自的監(jiān)控日志中記錄的起始執(zhí)行時間和結束執(zhí)行時間得到所述第一被監(jiān)控代碼調用所述第二被監(jiān)控代碼的調用鏈。
在被監(jiān)控設備生成調用鏈之后,可以將所述調用鏈上傳到數(shù)據(jù)分析設備,所述數(shù)據(jù)分析設備可以統(tǒng)計在一定時間段內相同調用鏈對應的請求產(chǎn)生的次數(shù)和/或每條調用鏈的平均執(zhí)行時間,以進行進一步分析。
除了以調用鏈為維度進行統(tǒng)計,還可以以被監(jiān)控代碼為維度進行統(tǒng)計,即可以統(tǒng)計被監(jiān)控代碼被調用執(zhí)行的次數(shù)、非被調用執(zhí)行的次數(shù)等等。
基于以上實施例提供的一種信息監(jiān)控方法,本發(fā)明實施例還提供了一種信息監(jiān)控裝置,下面結合附圖來詳細說明其工作原理。
裝置實施例一
參見圖2,該圖為本發(fā)明提供的一種信息監(jiān)控裝置實施例一的結構框圖。
本實施例提供的信息監(jiān)控裝置包括:
配置文件設置單元101、代碼植入單元102和被監(jiān)控信息生成單元103;
其中,所述配置文件設置單元101,用于預先設置配置文件,所述配置文件中包括被監(jiān)控代碼的名稱和路徑;
所述代碼植入單元102,用于根據(jù)所述被監(jiān)控代碼的名稱和路徑獲取所述被監(jiān)控代碼,并將監(jiān)控代碼植入到所述被監(jiān)控代碼中;
所述被監(jiān)控信息生成單元103,用于若所述被監(jiān)控代碼被執(zhí)行,則運行所述監(jiān)控代碼,以生成所述被監(jiān)控代碼的被監(jiān)控信息,實現(xiàn)對所述被監(jiān)控代碼的監(jiān)控。
相對于現(xiàn)有技術手動將監(jiān)控代碼一個一個植入到被監(jiān)控代碼中的方式,本實施例只要在配置文件中配置了被監(jiān)控代碼的名稱和路徑,就能實現(xiàn)自動將監(jiān)控代碼植入到所述被監(jiān)控代碼中的目的,提高監(jiān)控代碼的植入效率。
可選的,所述代碼植入單元102,具體用于將監(jiān)控代碼的起始語句插到所述被監(jiān)控代碼的首句之前,將所述監(jiān)控代碼的結束語句插到所述被監(jiān)控代碼的尾句之后。
可選的,所述被監(jiān)控信息生成單元103,具體用于若所述被監(jiān)控代碼被調用,則運行所述監(jiān)控代碼,以生成所述被監(jiān)控代碼的被調用信息。
可選的,所述被監(jiān)控代碼包括第一被監(jiān)控代碼和第二被監(jiān)控代碼;
所述若所述被監(jiān)控代碼被調用,則所述被監(jiān)控信息生成單元103,具體用于:
若所述第一被監(jiān)控代碼被執(zhí)行,則運行所述第一被監(jiān)控代碼的監(jiān)控代碼,以生成所述第一被監(jiān)控代碼的監(jiān)控日志,所述第一被監(jiān)控代碼的監(jiān)控日志中包括所述第一被監(jiān)控代碼的唯一標識、所述第一被監(jiān)控代碼的起始執(zhí)行時間和結束執(zhí)行時間;
若所述第二被監(jiān)控代碼被所述第一被監(jiān)控代碼調用,則運行所述第二被監(jiān)控代碼的監(jiān)控代碼,以生成所述第二被監(jiān)控代碼的監(jiān)控日志,所述第二被監(jiān)控代碼的監(jiān)控日志中包括所述第二被監(jiān)控代碼的唯一標識、所述第二被監(jiān)控代碼的起始執(zhí)行時間和結束執(zhí)行時間以及所述第一被監(jiān)控代碼的唯一標識。
可選的,所述裝置還包括:調用關系建立單元,用于根據(jù)所述第一被監(jiān)控代碼的監(jiān)控日志和所述第二被監(jiān)控代碼的監(jiān)控日志建立所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼之間的調用關系。
可選的,所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在同一個被監(jiān)控設備中或在不同的被監(jiān)控設備中。
可選的,若所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在同一個被監(jiān)控設備中,則所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在同一個線程執(zhí)行;
所述第一被監(jiān)控代碼的監(jiān)控日志和所述第二被監(jiān)控代碼的監(jiān)控日志中還包括:與所述同一個線程對應的線程標識。
可選的,若所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在不同的被監(jiān)控設備中,則所述第一被監(jiān)控代碼的監(jiān)控日志和所述第二被監(jiān)控代碼的監(jiān)控日志中還包括:全局標識。
可選的,所述被監(jiān)控代碼的路徑包括:
所述被監(jiān)控代碼的包路徑和/或所述被監(jiān)控代碼的類路徑。
當介紹本發(fā)明的各種實施例的元件時,冠詞“一”、“一個”、“這個”和“所述”都意圖表示有一個或多個元件。詞語“包括”、“包含”和“具有”都是包括性的并意味著除了列出的元件之外,還可以有其它元件。
需要說明的是,本領域普通技術人員可以理解實現(xiàn)上述方法實施例中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法實施例的流程。其中,所述存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。
本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于裝置實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元及模塊可以是或者也可以不是物理上分開的。另外,還可以根據(jù)實際的需要選擇其中的部分或者全部單元和模塊來實現(xiàn)本實施例方案的目的。本領域普通技術人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
以上所述僅是本發(fā)明的具體實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。