基于gdb的嵌入式系統(tǒng)調(diào)試器的設(shè)計與實現(xiàn)
發(fā)布時間:2021-03-22 15:56
嵌入式系統(tǒng)調(diào)試器是進行嵌入式開發(fā)的關(guān)鍵工具,常用于對嵌入式軟件的調(diào)試和測試。嵌入式系統(tǒng)調(diào)試器由交叉調(diào)試器和調(diào)試代理組成,其特點在于交叉調(diào)試器和調(diào)試目標(biāo)的運行環(huán)境相互分離,依賴調(diào)試代理來實現(xiàn)其調(diào)試會話。隨著嵌入式技術(shù)的不斷發(fā)展,各種嵌入式調(diào)試技術(shù)也在不斷進步,對應(yīng)的嵌入式系統(tǒng)調(diào)試器在嵌入式軟件開發(fā)中也發(fā)揮著越來越重要的作用。GNU debugger,gdb作為GNU工具鏈中的重要一員,是一個功能強大的源碼級調(diào)試器,可以實現(xiàn)普通商業(yè)調(diào)試器幾乎所有的功能。在gdb眾多可圈可點的特性中,其遠程調(diào)試功能是非常吸引人的一個特性。這個特性不僅在將GNU工具移植到一個新的操作系統(tǒng)和微處理器的時候很有用,對于想調(diào)試一個基于GNU支持的芯片的嵌入式系統(tǒng)的開發(fā)人員來說,也是非常有用的。由于gdb提供了在大多數(shù)嵌入式系統(tǒng)上的可移植的、復(fù)雜的調(diào)試功能,它已成為嵌入式開發(fā)的首選解決方案。本文討論了當(dāng)前的各種嵌入式調(diào)試器的現(xiàn)狀,結(jié)合源代碼詳細分析了gdb的結(jié)構(gòu)和調(diào)試原理,介紹了開發(fā)基于gdb的嵌入式系統(tǒng)調(diào)試器常用的遠程調(diào)試技術(shù)和gdb/MI接口;然后詳細闡述了如何使用gdb/MI開發(fā)gdb的圖形前端和怎樣使用RSP...
【文章來源】:電子科技大學(xué)四川省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:106 頁
【學(xué)位級別】:碩士
【部分圖文】:
典型的調(diào)試器體系結(jié)構(gòu)
F 有以下三種目標(biāo)文件格式:[11]可重定位文件:包含了代碼和數(shù)據(jù),適合于和其他的目標(biāo)文件起,用來創(chuàng)建一個可執(zhí)行目標(biāo)文件或者是一個可共享目標(biāo)文件可執(zhí)行文件:包含了一個用來執(zhí)行的程序;該文件指定 exec(BA創(chuàng)建程序的進程映象。共享目標(biāo)文件:包含了適于在兩種上下文里進行鏈接的代碼和種是由鏈接編輯器[請參看 ld(SD_CMD)]把它和其它的可重定位和共享目標(biāo)文件鏈接在一起,創(chuàng)建出另一個目標(biāo)文件。另一種鏈接器把它和一個可執(zhí)行文件文件和其他共享目標(biāo)文件鏈接起一個進程映象。 的目標(biāo)文件可以參與程序鏈接 (構(gòu)建程序)和程序執(zhí)行 (運行程了方便和效率,目標(biāo)文件格式提供了文件內(nèi)容的并行視圖來反同需求,圖 2-3 的兩種視圖顯示了目標(biāo)文件的組織[11]。
第二章 GDB 的結(jié)構(gòu)及其調(diào)試原理分析等?蓞⑴c鏈接過程的可重定位文件和共享目標(biāo)文件都必須有一個 section 頭表;可執(zhí)行文件則可有可無。程序頭表(program header table)用來告訴系統(tǒng)如何創(chuàng)建一個進程映象, 它包含一個描述段(segment)信息的結(jié)構(gòu)數(shù)組和一些為程序運行準(zhǔn)備的信息,如進程運行時需裝入哪些內(nèi)容,進程的起始地址等。參與建立進程映象(即執(zhí)行一個程序)的可執(zhí)行文件和共享文件必須要有一個程序頭表;重定位文件則不需要。在支持 ELF 的系統(tǒng)上,一個程序由可執(zhí)行文件或者還加上一些共享目標(biāo)文件組成。為了執(zhí)行這樣的程序,系統(tǒng)需要使用這些文件創(chuàng)建進程的內(nèi)存映象。進程映象包含一些段、包含了可執(zhí)行指令、數(shù)據(jù),等等。通過這些文件的一個程序頭表可以使一個 ELF 文件裝載到內(nèi)存使之運行。由上可知,可重定位文件有節(jié)頭表,可執(zhí)行文件有程序頭表,而共享庫文件兩者都有。節(jié)是鏈接器用來進行進一步處理的,一個段可能由多個節(jié)組成,而段
【參考文獻】:
期刊論文
[1]基于JTAG的ARM芯片系統(tǒng)調(diào)試[J]. 楊峰,張根寶,田澤,萬永波. 微計算機信息. 2005(22)
[2]32位ARM嵌入式處理器的調(diào)試技術(shù)[J]. 李劍,趙鵬程,湯建彬. 電子技術(shù)應(yīng)用. 2003(03)
[3]嵌入式應(yīng)用軟件開發(fā)環(huán)境的構(gòu)造[J]. 郭兵,熊光澤,陳宇. 計算機應(yīng)用. 2000(07)
[4]BFD:一種目標(biāo)代碼文件操作的抽象機制[J]. 黃瑞芳,張衛(wèi)民,張欽伍. 計算機工程與科學(xué). 1997(01)
本文編號:3094097
【文章來源】:電子科技大學(xué)四川省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:106 頁
【學(xué)位級別】:碩士
【部分圖文】:
典型的調(diào)試器體系結(jié)構(gòu)
F 有以下三種目標(biāo)文件格式:[11]可重定位文件:包含了代碼和數(shù)據(jù),適合于和其他的目標(biāo)文件起,用來創(chuàng)建一個可執(zhí)行目標(biāo)文件或者是一個可共享目標(biāo)文件可執(zhí)行文件:包含了一個用來執(zhí)行的程序;該文件指定 exec(BA創(chuàng)建程序的進程映象。共享目標(biāo)文件:包含了適于在兩種上下文里進行鏈接的代碼和種是由鏈接編輯器[請參看 ld(SD_CMD)]把它和其它的可重定位和共享目標(biāo)文件鏈接在一起,創(chuàng)建出另一個目標(biāo)文件。另一種鏈接器把它和一個可執(zhí)行文件文件和其他共享目標(biāo)文件鏈接起一個進程映象。 的目標(biāo)文件可以參與程序鏈接 (構(gòu)建程序)和程序執(zhí)行 (運行程了方便和效率,目標(biāo)文件格式提供了文件內(nèi)容的并行視圖來反同需求,圖 2-3 的兩種視圖顯示了目標(biāo)文件的組織[11]。
第二章 GDB 的結(jié)構(gòu)及其調(diào)試原理分析等?蓞⑴c鏈接過程的可重定位文件和共享目標(biāo)文件都必須有一個 section 頭表;可執(zhí)行文件則可有可無。程序頭表(program header table)用來告訴系統(tǒng)如何創(chuàng)建一個進程映象, 它包含一個描述段(segment)信息的結(jié)構(gòu)數(shù)組和一些為程序運行準(zhǔn)備的信息,如進程運行時需裝入哪些內(nèi)容,進程的起始地址等。參與建立進程映象(即執(zhí)行一個程序)的可執(zhí)行文件和共享文件必須要有一個程序頭表;重定位文件則不需要。在支持 ELF 的系統(tǒng)上,一個程序由可執(zhí)行文件或者還加上一些共享目標(biāo)文件組成。為了執(zhí)行這樣的程序,系統(tǒng)需要使用這些文件創(chuàng)建進程的內(nèi)存映象。進程映象包含一些段、包含了可執(zhí)行指令、數(shù)據(jù),等等。通過這些文件的一個程序頭表可以使一個 ELF 文件裝載到內(nèi)存使之運行。由上可知,可重定位文件有節(jié)頭表,可執(zhí)行文件有程序頭表,而共享庫文件兩者都有。節(jié)是鏈接器用來進行進一步處理的,一個段可能由多個節(jié)組成,而段
【參考文獻】:
期刊論文
[1]基于JTAG的ARM芯片系統(tǒng)調(diào)試[J]. 楊峰,張根寶,田澤,萬永波. 微計算機信息. 2005(22)
[2]32位ARM嵌入式處理器的調(diào)試技術(shù)[J]. 李劍,趙鵬程,湯建彬. 電子技術(shù)應(yīng)用. 2003(03)
[3]嵌入式應(yīng)用軟件開發(fā)環(huán)境的構(gòu)造[J]. 郭兵,熊光澤,陳宇. 計算機應(yīng)用. 2000(07)
[4]BFD:一種目標(biāo)代碼文件操作的抽象機制[J]. 黃瑞芳,張衛(wèi)民,張欽伍. 計算機工程與科學(xué). 1997(01)
本文編號:3094097
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/3094097.html
最近更新
教材專著