[發(fā)明專利]一種代碼處理方法及裝置有效
| 申請?zhí)枺?/td> | 201810259009.2 | 申請日: | 2018-03-27 |
| 公開(公告)號: | CN108664250B | 公開(公告)日: | 2022-02-01 |
| 發(fā)明(設(shè)計)人: | 王恒 | 申請(專利權(quán))人: | 北京奇藝世紀(jì)科技有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41 |
| 代理公司: | 北京潤澤恒知識產(chǎn)權(quán)代理有限公司 11319 | 代理人: | 莎日娜 |
| 地址: | 100080 北京市海淀*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 代碼 處理 方法 裝置 | ||
1.一種代碼處理方法,其特征在于,所述方法包括:
獲取編譯后的錯誤機(jī)器代碼的存儲地址;
根據(jù)所述存儲地址和對應(yīng)關(guān)系確定所述錯誤機(jī)器代碼所屬的函數(shù),所述對應(yīng)關(guān)系包括函數(shù)名稱和存儲地址范圍組成的 對應(yīng)表項;
根據(jù)所述存儲地址和所述存儲地址在存儲地址范圍中的偏移量確定所述錯誤機(jī)器代碼在所述函數(shù)中的位置;
獲取所述函數(shù)的編譯前的源代碼;
在所述源代碼的所述位置處查找所述錯誤機(jī)器代碼對應(yīng)的編譯前的源代碼。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取編譯后的錯誤機(jī)器代碼的存儲地址,包括:
獲取所述錯誤機(jī)器代碼的堆棧信息,所述堆棧信息是在所述錯誤機(jī)器代碼運行出錯時生成的,所述堆棧信息中至少包括所述錯誤機(jī)器代碼的存儲地址;
從所述堆棧信息中提取出所述存儲地址,并作為所述錯誤機(jī)器代碼的存儲地址。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述存儲地址和對應(yīng)關(guān)系確定所述錯誤機(jī)器代碼所屬的函數(shù),所述對應(yīng)關(guān)系包括函數(shù)名稱和存儲地址范圍組成的 對應(yīng)表項,包括:
在所述對應(yīng)關(guān)系中查找所述存儲地址所在的存儲地址范圍;
在所述對應(yīng)關(guān)系中查找與所述存儲地址范圍相對應(yīng)的函數(shù)名稱;
將所述函數(shù)名稱所對應(yīng)的函數(shù)確定為所述錯誤機(jī)器代碼所屬的函數(shù)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)所述存儲地址和所述存儲地址在存儲地址范圍中的偏移量確定所述錯誤機(jī)器代碼在所述函數(shù)中的位置,包括:
獲取所述存儲地址在所述存儲地址范圍中的偏移量,并作為所述錯誤機(jī)器代碼在所述函數(shù)中的位置。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取所述函數(shù)的編譯前的源代碼,包括:
獲取所述函數(shù)的中間代碼,所述中間代碼是事先在編譯所述函數(shù)的編譯前的源代碼的過程中生成的;
將所述中間代碼反編譯,得到所述函數(shù)的編譯前的源代碼。
6.一種代碼處理裝置,其特征在于,所述裝置包括:
第一獲取模塊,用于獲取編譯后的錯誤機(jī)器代碼的存儲地址;
第一確定模塊,用于根據(jù)所述存儲地址和對應(yīng)關(guān)系確定所述錯誤機(jī)器代碼所屬的函數(shù),所述對應(yīng)關(guān)系包括函數(shù)名稱和存儲地址范圍組成的 對應(yīng)表項;
第二確定模塊,用于根據(jù)所述存儲地址和所述存儲地址在存儲地址范圍中的偏移量確定所述錯誤機(jī)器代碼在所述函數(shù)中的位置;
第二獲取模塊,用于獲取所述函數(shù)的編譯前的源代碼;
查找模塊,用于在所述源代碼的所述位置處查找所述錯誤機(jī)器代碼對應(yīng)的編譯前的源代碼。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第一獲取模塊包括:
第一獲取單元,用于獲取所述錯誤機(jī)器代碼的堆棧信息,所述堆棧信息是在所述錯誤機(jī)器代碼運行出錯時生成的,所述堆棧信息中至少包括所述錯誤機(jī)器代碼的存儲地址;
提取單元,用于從所述堆棧信息中提取出所述存儲地址,并作為所述錯誤機(jī)器代碼的存儲地址。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第一確定模塊包括:
第一查找單元,用于在所述對應(yīng)關(guān)系中查找所述存儲地址所在的存儲地址范圍;
第二查找單元,用于在所述對應(yīng)關(guān)系中查找與所述存儲地址范圍相對應(yīng)的函數(shù)名稱;
第一確定單元,用于將所述函數(shù)名稱所對應(yīng)的函數(shù)確定為所述錯誤機(jī)器代碼所屬的函數(shù)。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述第二確定模塊具體用于:獲取所述存儲地址在所述存儲地址范圍中的偏移量,并作為所述錯誤機(jī)器代碼在所述函數(shù)中的位置。
10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第二獲取模塊包括:
第四獲取單元,用于獲取所述函數(shù)的中間代碼,所述中間代碼是事先在編譯所述函數(shù)的編譯前的源代碼的過程中生成的;
第二反編譯單元,用于將所述中間代碼反編譯,得到所述函數(shù)的編譯前的源代碼。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京奇藝世紀(jì)科技有限公司,未經(jīng)北京奇藝世紀(jì)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810259009.2/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





