基于gdb的嵌入式系统调试器的设计与实现
发布时间:2021-03-22 15:56
嵌入式系统调试器是进行嵌入式开发的关键工具,常用于对嵌入式软件的调试和测试。嵌入式系统调试器由交叉调试器和调试代理组成,其特点在于交叉调试器和调试目标的运行环境相互分离,依赖调试代理来实现其调试会话。随着嵌入式技术的不断发展,各种嵌入式调试技术也在不断进步,对应的嵌入式系统调试器在嵌入式软件开发中也发挥着越来越重要的作用。GNU debugger,gdb作为GNU工具链中的重要一员,是一个功能强大的源码级调试器,可以实现普通商业调试器几乎所有的功能。在gdb众多可圈可点的特性中,其远程调试功能是非常吸引人的一个特性。这个特性不仅在将GNU工具移植到一个新的操作系统和微处理器的时候很有用,对于想调试一个基于GNU支持的芯片的嵌入式系统的开发人员来说,也是非常有用的。由于gdb提供了在大多数嵌入式系统上的可移植的、复杂的调试功能,它已成为嵌入式开发的首选解决方案。本文讨论了当前的各种嵌入式调试器的现状,结合源代码详细分析了gdb的结构和调试原理,介绍了开发基于gdb的嵌入式系统调试器常用的远程调试技术和gdb/MI接口;然后详细阐述了如何使用gdb/MI开发gdb的图形前端和怎样使用RSP...
【文章来源】:电子科技大学四川省 211工程院校 985工程院校 教育部直属院校
【文章页数】:106 页
【学位级别】:硕士
【部分图文】:
典型的调试器体系结构
F 有以下三种目标文件格式:[11]可重定位文件:包含了代码和数据,适合于和其他的目标文件起,用来创建一个可执行目标文件或者是一个可共享目标文件可执行文件:包含了一个用来执行的程序;该文件指定 exec(BA创建程序的进程映象。共享目标文件:包含了适于在两种上下文里进行链接的代码和种是由链接编辑器[请参看 ld(SD_CMD)]把它和其它的可重定位和共享目标文件链接在一起,创建出另一个目标文件。另一种链接器把它和一个可执行文件文件和其他共享目标文件链接起一个进程映象。 的目标文件可以参与程序链接 (构建程序)和程序执行 (运行程了方便和效率,目标文件格式提供了文件内容的并行视图来反同需求,图 2-3 的两种视图显示了目标文件的组织[11]。
第二章 GDB 的结构及其调试原理分析等。可参与链接过程的可重定位文件和共享目标文件都必须有一个 section 头表;可执行文件则可有可无。程序头表(program header table)用来告诉系统如何创建一个进程映象, 它包含一个描述段(segment)信息的结构数组和一些为程序运行准备的信息,如进程运行时需装入哪些内容,进程的起始地址等。参与建立进程映象(即执行一个程序)的可执行文件和共享文件必须要有一个程序头表;重定位文件则不需要。在支持 ELF 的系统上,一个程序由可执行文件或者还加上一些共享目标文件组成。为了执行这样的程序,系统需要使用这些文件创建进程的内存映象。进程映象包含一些段、包含了可执行指令、数据,等等。通过这些文件的一个程序头表可以使一个 ELF 文件装载到内存使之运行。由上可知,可重定位文件有节头表,可执行文件有程序头表,而共享库文件两者都有。节是链接器用来进行进一步处理的,一个段可能由多个节组成,而段
【参考文献】:
期刊论文
[1]基于JTAG的ARM芯片系统调试[J]. 杨峰,张根宝,田泽,万永波. 微计算机信息. 2005(22)
[2]32位ARM嵌入式处理器的调试技术[J]. 李剑,赵鹏程,汤建彬. 电子技术应用. 2003(03)
[3]嵌入式应用软件开发环境的构造[J]. 郭兵,熊光泽,陈宇. 计算机应用. 2000(07)
[4]BFD:一种目标代码文件操作的抽象机制[J]. 黄瑞芳,张卫民,张钦伍. 计算机工程与科学. 1997(01)
本文编号:3094097
【文章来源】:电子科技大学四川省 211工程院校 985工程院校 教育部直属院校
【文章页数】:106 页
【学位级别】:硕士
【部分图文】:
典型的调试器体系结构
F 有以下三种目标文件格式:[11]可重定位文件:包含了代码和数据,适合于和其他的目标文件起,用来创建一个可执行目标文件或者是一个可共享目标文件可执行文件:包含了一个用来执行的程序;该文件指定 exec(BA创建程序的进程映象。共享目标文件:包含了适于在两种上下文里进行链接的代码和种是由链接编辑器[请参看 ld(SD_CMD)]把它和其它的可重定位和共享目标文件链接在一起,创建出另一个目标文件。另一种链接器把它和一个可执行文件文件和其他共享目标文件链接起一个进程映象。 的目标文件可以参与程序链接 (构建程序)和程序执行 (运行程了方便和效率,目标文件格式提供了文件内容的并行视图来反同需求,图 2-3 的两种视图显示了目标文件的组织[11]。
第二章 GDB 的结构及其调试原理分析等。可参与链接过程的可重定位文件和共享目标文件都必须有一个 section 头表;可执行文件则可有可无。程序头表(program header table)用来告诉系统如何创建一个进程映象, 它包含一个描述段(segment)信息的结构数组和一些为程序运行准备的信息,如进程运行时需装入哪些内容,进程的起始地址等。参与建立进程映象(即执行一个程序)的可执行文件和共享文件必须要有一个程序头表;重定位文件则不需要。在支持 ELF 的系统上,一个程序由可执行文件或者还加上一些共享目标文件组成。为了执行这样的程序,系统需要使用这些文件创建进程的内存映象。进程映象包含一些段、包含了可执行指令、数据,等等。通过这些文件的一个程序头表可以使一个 ELF 文件装载到内存使之运行。由上可知,可重定位文件有节头表,可执行文件有程序头表,而共享库文件两者都有。节是链接器用来进行进一步处理的,一个段可能由多个节组成,而段
【参考文献】:
期刊论文
[1]基于JTAG的ARM芯片系统调试[J]. 杨峰,张根宝,田泽,万永波. 微计算机信息. 2005(22)
[2]32位ARM嵌入式处理器的调试技术[J]. 李剑,赵鹏程,汤建彬. 电子技术应用. 2003(03)
[3]嵌入式应用软件开发环境的构造[J]. 郭兵,熊光泽,陈宇. 计算机应用. 2000(07)
[4]BFD:一种目标代码文件操作的抽象机制[J]. 黄瑞芳,张卫民,张钦伍. 计算机工程与科学. 1997(01)
本文编号:3094097
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3094097.html