嵌入式软件调试器的设计与实现.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 ! 卷第 ! 期西南师范大学学报(自然科学版)!##$ 年 % 月’() ! *’) !+’,-./( ’0 1’,234562 738./ *’-9/( :.8;5-682( */2,-/( 1=85.=5 )?-)!##$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!文章编号:@### A%B@(!##$)#! #!#C #A嵌入式软件调试器的设计与实现!温平川,何先刚,殷茜重庆邮电学院,重庆 %###DA摘要:嵌入式软件调试环境为嵌入式软件的开发提供了一个友好的软件调试平台 ) 从一种新的角度探讨了一种面向嵌入式软件的调试环境,即基于嵌入式系统目标机机内调试器的嵌入式软件调试环境 ) 介绍了一种面向程序设计语言的符号化调试技术,并重点剖析调试环境内核的设计与实现技术 )关键词:嵌入式软件;调试器;符号化调试技术中图分类号:!#$$%文献标识码:’计算机软件的开发通常与程序的调试密不可分 ) 而程序的调试实际上是用户借助某种调试环境或工具来完成对编制的程序进行功能性和正确性测试 ) 在这一过程中,用户在调试环境的监视下来分析所要调试的程序,发现程序中存在的问题与缺陷,从而达到修正程序的目的 ) 我们构造的基于目标机机内调试器的调试环境是一个面向多种程序设计语言而建立的嵌入式软件调试环境,它运行在一般的通用计算机上,通过与目标机机内调试器通信来完成所需要的各种行为 ) 本文所阐述的系统由两个独立的硬件系统构成,整个嵌入式软件调试环境分成两大部分分别自治的运行在不同的硬件平台上 ) 主调试环境与目标机系统的机内调试器之间以数据流的方式相互联系在一起,从而形成一个松耦合系统 ) 在这样一个嵌入式软件调试环境里,所要调试的程序的目标代码被加载到目标机上运行,而所有与调试有关的信息则加载在运行主调试器的宿主机上,这种关系使调试环境与目标系统之间形成一非控制与被控制的关系,而所有的与调试有关的行为则以信令的形式来完成 )$面向程序设计语言的符号化调试技术面向程序设计语言的符号化调试技术的特点就是能够支持在程序的源文件的任何程序语句上设置断点,并在这样一个断点上打印和设置程序中所有的任何变量 ) 上述所有功能都要以交互的方式来完成,并且以调试时显示合适的源代码的行号的形式来达到这些目的 ) 面向程序设计语言的符号调试,可以面向多种程序设计语言,最典型的程序设计语言可能是 7 语言和宏汇编语言,因此我们所要开发的调试环境就是为这两个程序设计语言编写的程序提供调试服务 ) 同时,这个调试环境的另一个目的是在只具有目标代码的情况之下也可以完成对嵌入式软件的调试 )面向程序设计语言的符号化调试技术的实现需要从编译或汇编连接系统中取得帮助,也就是说,编译或汇编连接系统在进行嵌入式软件的编译(汇编)生成时,要尽可能多的保留程序源代码的信息,即在所产生的目标代码文件中保存目标代码与源代码之间联系的信息 ) 包括从源代码到目标代码的对应关系的信息以及源代码中所用到的符号的定义的信息 ) 调试环境通过对目标文件结构进行分析,从已存在的信息中建!收稿日期:!##$ #@ #基金项目:重庆市应用基础基金资助项目(E!##! F #!);重庆邮电学院科技基金资助项目(!##@ F $$))作者简介:温平川(@CB# F ),男,重庆人,硕士研究生,工程师,主要从事嵌入式软件仿真开发、717G 的研究 )#E西南师范大学学报(自然科学版)第 #F 卷立以下几种联系的运行时调试信息表,从而为实现面向程序设计语言的符号化调试提供了基础 !!目标地址到源代码的对应关系表!全局变量及静态变量与目标机内存堆地址对应关系表!局部变量与目标机内栈地址有偏移量的对应关系表!运行代码的标号与目标地址的对应关系表其中,目标地址到源代码的对应关系表可以由保存目标文件中的行号表信息来建立;全局变量及静态变量与目标机内存堆地址对应关系表可以通过目标代码文件中的符号表中所保存的地址信息来建立;运行代码的标号与目标地址的对应关系是指函数符号名与目标地址之间的关系,它可以从分析保存在目标文件中的符号表中的信息来建立! 局部变量与目标机内栈地址有偏移量的对应关系表是在程序运行时随时建立的,由于局部符号与其定义域相关,所以对于局部符号的跟踪需要通过分析符号表、行号信息表和运行状态来完成!建立这些联系表,并不是在运行时如何提供调试所需要的信息,从这一角度来看,嵌入式软件调试环境必须对下列现象进行处理 !()程度运行的当前行显示 !(#)变量跟踪与变量内容显示 !($)断点行显示 !(%)变量检查及修改 !为解析上述现象,调试环境需要即时的取得处理机的状态,并取得各种寄存器的值、内存状态以及处理机的运行方式,再通过对各种

文档评论(0)

smdh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档