[發明專利]共享庫中的動態代碼添加在審
| 申請號: | 201780019509.2 | 申請日: | 2017-02-27 |
| 公開(公告)號: | CN108780419A | 公開(公告)日: | 2018-11-09 |
| 發明(設計)人: | S·A·K·加塔拉;M·克里斯托鐸雷斯古;M·薩拉耶格埃 | 申請(專利權)人: | 高通股份有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F8/54;G06F9/445 |
| 代理公司: | 北京律盟知識產權代理有限責任公司 11287 | 代理人: | 楊林勳 |
| 地址: | 美國加利*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 集合 代碼位 共享庫 計算裝置 代碼段 客戶端 編譯 碼段 關聯 動態代碼 關聯代碼 應用程序 碼位 位點 虛設 存儲 指令 | ||
各種實施例包含一種用于在客戶端計算裝置上動態地修改共享庫的方法。各種實施例方法可包含接收與第一應用程序相關聯的第一代碼段集合和第一代碼位點集合。所述第一代碼位點集合中的每一代碼可包含在所述客戶端計算裝置上存儲的經編譯共享庫內的地址。所述經編譯共享庫可包含在所述第一代碼位點集合中的每一代碼位點處插入的一或多個虛設指令,且所述第一代碼段集合中的每一代碼段可與所述第一代碼位點集合中的代碼位點相關聯。所述客戶端計算裝置可將所述第一代碼段集合中的每一代碼段在其相關聯代碼位點處插入到所述經編譯共享庫中。
背景技術
各種計算裝置(包含臺式計算機、膝上型計算機、平板計算機和例如智能電話的移動計算裝置)可存儲數個共享庫。共享庫可為可由在計算裝置上執行的多個應用程序利用的功能、子例程、類別、值、配置數據、模板和/或其它信息的集合。可在運行時間下編譯共享庫的單個復本并將其加載到存儲器,且多個應用程序可同時接入共享庫。
在一些情況下,應用程序能夠在運行時間期間動態地變更共享庫的代碼可能是有利的。舉例來說,插入到共享庫中的探測代碼可允許應用程序跟蹤一或多個應用程序調用共享庫中的某些功能的次數和序列。在另一實例中,在共享庫中添加代碼可使調試更加容易。然而,共享庫通常被只讀地加載并映射到存儲器中,因此應用程序不能夠獨立且動態地變更共享庫的代碼。
發明內容
各種實施例包含在客戶端計算裝置上實施的用于動態地修改共享庫的方法。各種實施例可包含接收與第一應用程序相關聯的第一代碼段集合和第一代碼位點集合。第一代碼位點集合中的每一代碼可包含在客戶端計算裝置上存儲的經編譯共享庫內的地址。經編譯共享庫可包含在第一代碼位點集合中的每一代碼位點處插入的一或多個虛設指令(例如,無操作或NOP指令),且第一代碼段集合中的每一代碼段可與第一代碼位點集合中的代碼位點相關聯。所述方法可進一步包含將第一代碼段集合中的每一代碼段在其相關聯代碼位點處插入到經編譯共享庫中。
一些實施例可進一步包含:從第一應用程序接收修改經編譯共享庫的請求,確定第一應用程序是否被授權修改經編譯共享庫,以及響應于確定第一應用程序未被授權修改經編譯共享庫而拒絕修改經編譯共享庫的請求。
在一些實施例中,將每一代碼段在其相關聯代碼位點處插入到經編譯共享庫中可包含:復制經編譯共享庫的含有第一代碼位點集合中的第一代碼位點的原始存儲器頁面,用相關聯代碼段重寫所復制存儲器頁面的第一代碼位點處的一或多個虛設指令,以及用所復制存儲器頁面重寫原始存儲器頁面。在一些實施例中,將每一代碼段在其相關聯代碼位點處插入到經編譯共享庫中可包含:復制經編譯共享庫的含有第一代碼位點集合中的第一代碼位點的原始存儲器頁面,用相關聯代碼段重寫所復制存儲器頁面的第一代碼位點處的一或多個虛設指令,從經編譯共享庫的與第一應用程序相關聯的地址空間解除映射原始存儲器頁面,以及在相同于原始存儲器頁面的地址位置處將所復制存儲器頁面映射到地址空間中。在一些實施例中,將每一代碼段在其相關聯代碼位點處插入到經編譯共享庫中可包含用相關聯代碼段重寫在經編譯共享庫中的第一代碼位點集合中的第一代碼位點處的一或多個虛設指令。
一些實施例可進一步包含接收與第二應用程序相關聯的第二代碼段集合和第二代碼位點集合。第二代碼位點集合中的每一代碼位點可包含經編譯共享庫內的地址。經編譯共享庫可包含在第二代碼位點集合中的每一代碼位點處插入的一或多個虛設指令,且第二代碼段集合中的每一代碼段可與第二代碼位點集合中的代碼位點相關聯。計算裝置可將第一代碼段集合和第二代碼段集合中的每一代碼段在其相關聯代碼位點處插入到經編譯共享庫中。一些實施例可進一步包含在從存儲器卸載經編譯共享庫時,從存儲器去除插入到經編譯共享庫中的第一代碼段集合。
各種實施例包含在計算裝置上實施的用于編譯共享庫的方法。此類實施例可包含:接收代碼位點集合,其中代碼位點集合中的每一代碼位點可包含在計算裝置上存儲的共享庫內的地址,以及編譯共享庫,其中在代碼位點集合中的每一代碼位點處將一或多個虛設指令(例如,NOP指令)插入到經編譯共享庫中。一些實施例可進一步包含將經編譯共享庫提供到一或多個客戶端計算裝置。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于高通股份有限公司,未經高通股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/201780019509.2/2.html,轉載請聲明來源鉆瓜專利網。





