[發明專利]overlay符號表建立和查找的方法、裝置及程序調制系統有效
| 申請號: | 201210505005.0 | 申請日: | 2012-11-30 |
| 公開(公告)號: | CN102981956A | 公開(公告)日: | 2013-03-20 |
| 發明(設計)人: | 卓玉樟;崔世強 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 深圳市深佳知識產權代理事務所(普通合伙) 44285 | 代理人: | 唐華明 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | overlay 符號 建立 查找 方法 裝置 程序 調制 系統 | ||
技術領域
本發明涉及程序開發領域,更具體地說,涉及overlay符號表建立和查找的方法、裝置及程序調制系統。
背景技術
GDB(GNU?Debugger,開源組織調試器)是開源組織發布的一個強大的UNIX下的程序調試工具。調試人員可以自定義程序或指令的運行方式;可以讓被調試的程序或指令停止在設定的斷點處,以使調試人員檢測程序或指令的運行過程。
GDB包括用戶交互界面、符號表處理模塊和控制模塊;其運行過程為,調試人員通過交互界面輸入命令,命令和符號通過解析后,經由控制模塊處理后轉換為RSP協議命令到目標端;目標端解析RSP協議命令后,執行相應的命令,生成結果;符號表處理模塊解析所述結果并將解析后的結果輸出到交互界面。
在對命令進行編譯的過程中,在內存中鏡像處理器的一級緩存的地址中的代碼段時,往往都是在內存中按照地址順序來分配空間;現有技術中,可以采用overlay調試技術以緩解一級緩存空間不足,該調試技術的技術方案具體包括:
在建立overlay符號表時,首先在overlay的代碼段建立<VMA,LMA>的地址關系表,從而可以實現訪問VMA對應的已經映射的代碼段,其中,LMA為加載內存地址,即,Load?Memory?Addr;VMA為虛擬內存地址,即Virtual?Memory?Addr。
在映射完成后,建立矢量塊,并將矢量塊的起始地址按照由高到低的地址順序建立塊鏈表;建立符號表的linetable,即,代碼段與地址之間的對應關系表,并按照代碼段所屬PC的地址由高到低建立linetable的鏈表。
但是,發明人經過研究發現,現有技術至少存在以下缺陷,當采用多核處理器進行overlay調試時,由于在符號表中不能區分處理器中的多個核,所以在為一個處理器核建立blockvector列表后,在獲取符號時可能會顯示符號錯誤,即有可能是另外一個處理器核的符號;此外,基于相同的原因,在建立鏈表后,當通過順序查找表項并顯示代碼和行號信息時,也可能會產生錯誤的結果,即,有可能會顯示另外一個處理器核上一級緩存上的對應的行號信息,從而造成調試錯誤。
發明內容
有鑒于此,本發明實施例提供一種建立overlay符號表的方法,以解決現有技術存在的,當采用多核處理器進行overlay調試時,獲取block時顯示符號錯誤的問題。
本發明實施例是這樣實現的:
一方面,本申請提供了一種overlay符號表建立方法,包括:
建立overlay代碼段的虛擬內存VMA和加載內存LMA的地址關系表,所述地址關系表包括VMA、LMA和核標識的三元關系,其中,所述核標識從overlay表overlay_table中獲取;
判斷映射是否正確,包括:將所述代碼段的VMA和LMA與所述地址關系表中的VMA和LMA與中進行匹配,若匹配成功,則判斷代碼段對應的全局代碼段所屬的image所對應的核信息與所述地址關系表中的核標識是否匹配,若匹配成功,則認為映射正確;
建立矢量塊blockvector,并按照所述blockvector的起始地址由高到低的順序建立所述blockvector的塊鏈表,所述塊鏈表中包括所述blockvector的核標識;
建立線性表linetable,并按所述代碼段所屬PC的地址由低到高順序建立linetable鏈表。
進一步的,所述核標識為通過在線讀取對象target上的overlay_table而獲得。
進一步的,所述核標識為通過讀取鏈接腳本中overlay_table的配置信息而獲得。
一方面,本申請還提供了一種overlay符號表查找方法,包括:
查找當前執行程序中指令所對應的塊信息,包括判斷塊中核標識是否和當前執行程序中指令的被調試核對應;
查找當前執行程序中指令所對應的symtable_and_line信息,包括在最接近的PC值的表項<PC,line>中查找與所述PC對應的symbol中最小行號的值最接近的值。
進一步的,還包括:
判斷代碼段是否為已映射,包括判斷所述代碼段中塊信息中的所述核標識是否與當前被調試核對應。
一方面,本申請還提供了一種程序調試方法,包括建立overlay符號表方法和查找overlay符號表方法;
所述建立overlay符號表方法,包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210505005.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種透明導電膠膜的制備方法
- 下一篇:液壓變配重電梯





