[發明專利]一種代碼處理方法及裝置有效
| 申請號: | 201810259009.2 | 申請日: | 2018-03-27 |
| 公開(公告)號: | CN108664250B | 公開(公告)日: | 2022-02-01 |
| 發明(設計)人: | 王恒 | 申請(專利權)人: | 北京奇藝世紀科技有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41 |
| 代理公司: | 北京潤澤恒知識產權代理有限公司 11319 | 代理人: | 莎日娜 |
| 地址: | 100080 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 代碼 處理 方法 裝置 | ||
本發明實施例提供了一種代碼處理方法及裝置。通過本發明實施例的方法,無需編程人員在源文件中手動檢查可能出錯的源代碼,當編譯后的機器代碼運行出錯時,就會將該機器代碼作為錯誤機器代碼,然后獲取編譯后的錯誤機器代碼的存儲地址,再根據該存儲地址確定錯誤機器代碼所屬的函數,之后根據該存儲地址確定錯誤機器代碼在該函數中的位置,并獲取該函數的編譯前的源代碼,之后在該源代碼的該位置處就可以查找錯誤機器代碼對應的編譯前的源代碼,從而可以提高查找錯誤機器代碼對應的編譯前的源代碼的效率,以及降低人工成本。
技術領域
本發明涉及計算機技術領域,特別是涉及一種代碼處理方法及裝置。
背景技術
隨著技術的飛速發展,計算機軟件得到了廣泛應用,當前,為了自動化地實現某一目的,編程人員事先需要編寫用于實現該目的的源文件,該源文件中包括源代碼,然后存儲該源文件。之后當需要實現該目的時,可以獲取用于實現該目的的源文件,然后對源代碼編譯,得到編譯后的機器代碼,再將編譯后的機器代碼存儲在內存中,之后從內存中獲取機器代碼,然后運行機器代碼。
然而,編程人員事先在編寫源文件時,有時候會由于人為疏忽導致源文件中的某些行的源代碼出現一些錯誤,例如語法錯誤或者單詞拼寫錯誤等。
如果某一行的源代碼出現錯誤,則系統在運行該行的源代碼對應的編譯后的機器代碼時往往會出錯,例如無法成功運行該行的源代碼對應的編譯后的機器代碼,也無法繼續運行位于該行的源代碼之后的源代碼對應的編譯后的機器代碼,從而導致此次運行在該機器代碼處中斷。
由于編程人員也無法確定是哪一行的源代碼出現錯誤,因此,為了能夠成功運行修改后的該行的源代碼對應的編譯后的機器代碼,以及能夠繼續運行位于該行的源代碼之后的源代碼對應的編譯后的機器代碼,編程人員需要在源文件中人工查找可能出錯的源代碼并修改出錯的源代碼。
然而,在源文件中包括的源代碼非常多時,編程人員往往需要耗費較長的時間才能在源文件中查找出可能出錯的源代碼,查找出錯的源代碼的效率較低,且人力成本較高。
發明內容
為解決上述技術問題,本發明實施例示出了一種代碼處理方法及裝置。
第一方面,本發明實施例示出了一種代碼處理方法,所述方法包括:
獲取編譯后的錯誤機器代碼的存儲地址;
根據所述存儲地址確定所述錯誤機器代碼所屬的函數;
根據所述存儲地址確定所述錯誤機器代碼在所述函數中的位置;
獲取所述函數的編譯前的源代碼;
在所述源代碼的所述位置處查找所述錯誤機器代碼對應的編譯前的源代碼。
在一個可選的實現方式中,所述獲取編譯后的錯誤機器代碼的存儲地址,包括:
獲取所述錯誤機器代碼的堆棧信息,所述堆棧信息是在所述錯誤機器代碼運行出錯時生成的,所述堆棧信息中至少包括所述錯誤機器代碼的存儲地址;
從所述堆棧信息中提取出所述存儲地址,并作為所述錯誤機器代碼的存儲地址。
在一個可選的實現方式中,所述根據所述存儲地址確定所述錯誤機器代碼所屬的函數,包括:
獲取函數的存儲地址范圍與函數的函數名稱之間的對應關系;
在所述對應關系中查找所述存儲地址所在的存儲地址范圍;
在所述對應關系中查找與所述存儲地址范圍相對應的函數名稱;
將所述函數名稱所對應的函數確定為所述錯誤機器代碼所屬的函數。
在一個可選的實現方式中,所述根據所述存儲地址確定所述錯誤機器代碼在所述函數中的位置,包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京奇藝世紀科技有限公司,未經北京奇藝世紀科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810259009.2/2.html,轉載請聲明來源鉆瓜專利網。





