本發(fā)明專利技術(shù)實(shí)施例公開了overlay符號表建立和查找的方法、裝置及程序調(diào)制系統(tǒng),其中overlay符號表建立方法包括:建立VMA和LMA的地址關(guān)系表時包括核標(biāo)識;在判斷映射是否正確時包括判斷代碼段對應(yīng)的全局代碼段所屬的image所對應(yīng)的核信息與地址關(guān)系表中的核標(biāo)識是否匹配;建立blockvector的塊鏈表,塊鏈表中包括有blockvector的核標(biāo)識。由于本申請中在程序調(diào)試時,可以根據(jù)核標(biāo)識查找對應(yīng)的塊信息和對應(yīng)的symtable_and_line信息,從而建立blockvector列表后,獲取block時會顯示正確的符號;避免了多核環(huán)境下在采用overlay方式進(jìn)行程序調(diào)試時出現(xiàn)的調(diào)試錯誤。
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)涉及程序開發(fā)領(lǐng)域,更具體地說,涉及overlay符號表建立和查找的方法、 裝置及程序調(diào)制系統(tǒng)。
技術(shù)介紹
⑶B (GNU Debugger,開源組織調(diào)試器)是開源組織發(fā)布的一個強(qiáng)大的UNIX下的程序調(diào)試工具。調(diào)試人員可以自定義程序或指令的運(yùn)行方式;可以讓被調(diào)試的程序或指令停止在設(shè)定的斷點(diǎn)處,以使調(diào)試人員檢測程序或指令的運(yùn)行過程。⑶B包括用戶交互界面、符號表處理模塊和控制模塊;其運(yùn)行過程為,調(diào)試人員通過交互界面輸入命令,命令和符號通過解析后,經(jīng)由控制模塊處理后轉(zhuǎn)換為RSP協(xié)議命令到目標(biāo)端;目標(biāo)端解析RSP協(xié)議命令后,執(zhí)行相應(yīng)的命令,生成結(jié)果;符號表處理模塊解析所述結(jié)果并將解析后的結(jié)果輸出到交互界面。在對命令進(jìn)行編譯的過程中,在內(nèi)存中鏡像處理器的一級緩存的地址中的代碼段時,往往都是在內(nèi)存中按照地址順序來分配空間;現(xiàn)有技術(shù)中,可以采用overlay調(diào)試技術(shù)以緩解一級緩存空間不足,該調(diào)試技術(shù)的技術(shù)方案具體包括在建立overlay符號表時,首先在overlay的代碼段建立〈VMA,LMA>的地址關(guān)系表,從而可以實(shí)現(xiàn)訪問VMA對應(yīng)的已經(jīng)映射的代碼段,其中,LMA為加載內(nèi)存地址,S卩,Load Memory Addr ;VMA 為虛擬內(nèi)存地址,即 Virtual Memory Addr。在映射完成后,建立矢量塊,并將矢量塊的起始地址按照由高到低的地址順序建立塊鏈表;建立符號表的linetable,即,代碼段與地址之間的對應(yīng)關(guān)系表,并按照代碼段所屬PC的地址由高到低建立linetable的鏈表。但是,專利技術(shù)人經(jīng)過研究發(fā)現(xiàn),現(xiàn)有技術(shù)至少存在以下缺陷,當(dāng)采用多核處理器進(jìn)行 overlay調(diào)試時,由于在符號表中不能區(qū)分處理器中的多個核,所以在為一個處理器核建立 blockvector列表后,在獲取符號時可能會顯不符號錯誤,即有可能是另外一個處理器核的符 號;此外,基于相同的原因,在建立鏈表后,當(dāng)通過順序查找表項(xiàng)并顯示代碼和行號信息時,也可能會產(chǎn)生錯誤的結(jié)果,即,有可能會顯示另外一個處理器核上一級緩存上的對應(yīng)的行號信息,從而造成調(diào)試錯誤。
技術(shù)實(shí)現(xiàn)思路
有鑒于此,本專利技術(shù)實(shí)施例提供一種建立overlay符號表的方法,以解決現(xiàn)有技術(shù)存在的,當(dāng)采用多核處理器進(jìn)行overlay調(diào)試時,獲取block時顯示符號錯誤的問題。本專利技術(shù)實(shí)施例是這樣實(shí)現(xiàn)的—方面,本申請?zhí)峁┝艘环Noverlay符號表建立方法,包括建立overlay代碼段的虛擬內(nèi)存VMA和加載內(nèi)存LMA的地址關(guān)系表,所述地址關(guān)系表包括VMA、LMA和核標(biāo)識的三元關(guān)系,其中,所述核標(biāo)識從overlay表overlay_table中獲取;判斷映射是否正確,包括將所述代碼段的VMA和LMA與所述地址關(guān)系表中的VMA 和LMA與中進(jìn)行匹配,若匹配成功,則判斷代碼段對應(yīng)的全局代碼段所屬的image所對應(yīng)的核信息與所述地址關(guān)系表中的核標(biāo)識是否匹配,若匹配成功,則認(rèn)為映射正確;建立矢量塊blockvector,并按照所述blockvector的起始地址由高到低的順序建立所述blockvector的塊鏈表,所述塊鏈表中包括所述blockvector的核標(biāo)識;建立線性表linetable,并按所述代碼段所屬PC的地址由低到高順序建立 linetable 鏈表。進(jìn)一步的,所述核標(biāo)識為通過在線讀取對象target上的overlay_table而獲得。進(jìn)一步的,所述核標(biāo)識為通過讀取鏈接腳本中overlayjable的配置信息而獲得。—方面,本申請還提供了一種overlay符號表查找方法,包括查找當(dāng)前執(zhí)行程序中指令所對應(yīng)的塊信息,包括判斷塊中核標(biāo)識是否和當(dāng)前執(zhí)行程序中指令的被調(diào)試核對應(yīng);查找當(dāng)前執(zhí)行程序中指令所對應(yīng)的symtable_and_line信息,包括在最接近的PC 值的表項(xiàng)〈PC,line)中查找與所述PC對應(yīng)的symbol中最小行號的值最接近的值。進(jìn)一步的,還包括判斷代碼段是否為已映射,包括判斷所述代碼段中塊信息中的所述核標(biāo)識是否與當(dāng)前被調(diào)試核對應(yīng)。一方面,本申請還提供了一種程序調(diào)試方法,包括建立overlay符號表方法和查找overlay符號表方法;所述建立overlay符號表方法,包括建立overlay代碼段的虛擬內(nèi)存VMA和加載內(nèi)存LMA的地址關(guān)系表,所述地址關(guān)系表包括VMA、LMA和核標(biāo)識的三元關(guān)系,其中,所述核標(biāo)識從overlay表overlay_table中獲取;判斷映射是否正確,包括將所述代碼段的VMA和LMA與所述地址關(guān)系表中的VMA 和LMA與中進(jìn)行匹配,若匹配成功,則判斷代碼段對應(yīng)的全局代碼段所屬的image所對應(yīng)的核信息與所述地址關(guān)系表中的核標(biāo)識是否匹配,若匹配成功,則認(rèn)為映射正確;建立矢量塊blockvector,并按照所述blockvector的起始地址由高到低的順序建立所述blockvector的塊鏈表,所述塊鏈表中包括所述blockvector的核標(biāo)識;建立線性表linetable,并按所述代碼段所屬PC的地址由低到高順序建立 linetable 鏈表所述查找overlay符號表方法包括查找當(dāng)前執(zhí)行程序中指令所對應(yīng)的塊信息,包括判斷塊中核標(biāo)識是否和當(dāng)前執(zhí)行程序中指令的被調(diào)試核對應(yīng);查找當(dāng)前執(zhí)行程序中指令所對應(yīng)的symtable_and_line信息,包括在最接近的PC 值的表項(xiàng)〈PC,line)中查找與所述PC對應(yīng)的symbol中最小行號的值最接近的值。進(jìn)一步的,還包括判斷代碼段是否為已映射,包括判斷所述代碼段中塊信息中的所述核標(biāo)識是否與當(dāng)前被調(diào)試核對應(yīng)。6進(jìn)一步的,所述核標(biāo)識為通過在線讀取對象target上的overlay_table而獲得。 —table進(jìn)一步的,所述核標(biāo)識為通過讀取鏈接腳本中overlayjable的配置信息而獲得。—方面,本申請還提供了一種overlay符號表建立裝置,包括關(guān)系表建立模塊,用于建立overlay代碼段的虛擬內(nèi)存VMA和加載內(nèi)存LMA的地址關(guān)系表,所述地址關(guān)系表包括VMA、LMA和核標(biāo)識的三元關(guān)系,其中,所述核標(biāo)識從 overlay 表 overlay_table 中獲取;映射匹配模塊,用于判斷映射是否_正ta確ble,包括將所述代碼段的VMA和 LMA與所述地址關(guān)系表中的VMA和LMA與中進(jìn)行匹配,若匹配成功,則判斷代碼段對應(yīng)的全局代碼段所屬的image所對應(yīng)的核信息與所述地址關(guān)系表中的核標(biāo)識是否匹配,若匹配成功,則認(rèn)為映射正確;矢量塊建立模塊,用于建立矢量塊blockvector,并按照所述blockvector的起始地址由高到低的順序建立所述blockvector的塊鏈表,所述塊鏈表中包括所述 blockvector的核標(biāo)識;Linetable建立模塊,用于建立線性表linetable,并按所述代碼段所屬PC的地址由低到高順序建立linetable鏈表。進(jìn)一步的,所述關(guān)系表建立|旲塊包括核標(biāo)識獲取單元,用于通過讀取鏈接腳本中overlay_table的配置信息在線讀取 target上的overlay_tabl獲得核標(biāo)識。—方面,本申請還提供了一種overlay符號表查找裝置,包括塊信息查找模塊,用于查找當(dāng)前執(zhí)行程序中指令所對應(yīng)的塊信息,包括判斷塊中核標(biāo)識是否和當(dāng)前執(zhí)行程序中指令的被調(diào)試核對應(yīng);sym本文檔來自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
一種overlay符號表建立方法,其特征在于,包括:建立overlay代碼段的虛擬內(nèi)存VMA和加載內(nèi)存LMA的地址關(guān)系表,所述地址關(guān)系表包括VMA、LMA和核標(biāo)識的三元關(guān)系,其中,所述核標(biāo)識從overlay表overlay_table中獲取;判斷映射是否正確,包括:將所述代碼段的VMA和LMA與所述地址關(guān)系表中的VMA和LMA與中進(jìn)行匹配,若匹配成功,則判斷代碼段對應(yīng)的全局代碼段所屬的image所對應(yīng)的核信息與所述地址關(guān)系表中的核標(biāo)識是否匹配,若匹配成功,則認(rèn)為映射正確;建立矢量塊blockvector,并按照所述blockvector的起始地址由高到低的順序建立所述blockvector的塊鏈表,所述塊鏈表中包括所述blockvector的核標(biāo)識;建立線性表linetable,并按所述代碼段所屬PC的地址由低到高順序建立linetable鏈表。
【技術(shù)特征摘要】
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:卓玉樟,崔世強(qiáng),
申請(專利權(quán))人:華為技術(shù)有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。