[发明专利]一种仿真工具的C语言单步调试实现方法无效

专利信息
申请号: 200910243482.2 申请日: 2009-12-23
公开(公告)号: CN102110046A 公开(公告)日: 2011-06-29
发明(设计)人: 韩磊 申请(专利权)人: 北京中电华大电子设计有限责任公司
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 暂无信息 代理人: 暂无信息
地址: 100102 北京市朝阳*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 仿真 工具 语言 调试 实现 方法
【说明书】:

技术领域

本技术主要应用于智能卡软件开发仿真调试工具领域。

背景技术

汇编和C是目前智能卡软件开发使用的两种主要编程语言,由于C语言的可读性强、可移植性好而得到广泛应用。但C语言相对汇编语言要复杂的多,给仿真调试工具的开发增加了不少困难,与汇编语言相比较,C语言的一个单步调试命令(包括单步进入Step In、单步跨越Step Over),对应于汇编语言会执行若干条指令,而且其中还可能有跳转分支,不同的顺序执行指令和跳转分支指令相结合,使得C语言的调试非常复杂。

发明内容

本发明首先由仿真器实现基本调试命令,然后由编译器对程序代码解释生成代码行/程序地址对应表以及跳转表,最后由IDE实现具体调试逻辑。

仿真器实现调试命令如下:

Step In:单步,进入函数;

Step Over:单步,跳过函数;

Run to:执行到具体一个程序代码地址。

另外,硬件有两种状态running和stop,在调试过程中需要返回给IDE。

编译器生成的代码行/程序地址对应表内容包括:

FileName:代码所在文件;

LineIndex:代码所在行;

LineAddressRange:代码地址范围,包括起始地址StartAddress和结束地址EndAddress。

IDE根据这些信息来实现调试逻辑,并将当前调试行显示给用户。

跳转表内容包括:

InsName:跳转指令名称;

AsmFile:*.C文件编译生成的中间汇编文件名;

AsmLine:对应中间汇编文件的行号;

InsAddr:跳转指令所在地址。

本发明用来解决C语言程序单步调试的问题。方案主要由两方面构成:1)通过将汇编单步命令Step In/Step Over和运行指定地址Run to命令相结合,来处理C语言代码行地址问题;2)通过仿真器状态控制,来确定何时完成一次单步调试。使用该方案的好处是,除了可以支持C语言调试外,也能较好的兼容汇编语言调试。

附图说明

图1:C语言程序单步调试逻辑流程图

图2:仿真器控制逻辑流程图

具体实施方式

1、C语言程序单步调试行地址处理方法

对于汇编语言来说,由于每一行代码就对应着一条汇编语句,所以很容易处理,直接发送Step In/Step Over命令即可。

然而,对于C语言,每一行代码可能对应多条汇编语句,并且这多条汇编语句可能不连续,甚至存在多个跳转语句,如何跳出该行C代码只有执行时才能确定。因此,不能简单的将调试命令一对一的翻译,而需要另行建立一套逻辑方法来处理。

详细流程步骤如下:

1)获取当前程序指针PC和当前调试代码行地址范围AddrRange,转入步骤2);

2)比较当前程序指针PC和当前调试代码行地址范围AddrRange,若PC在AddrRange范围内转入步骤3),否则转入步骤4);

3)直接发送Step In/Step Over单步命令,转入步骤9);

4)查找跳转地址表,找出距离当前程序PC最近的跳转地址JmpAddr,转入步骤5);

5)比较跳转地址JmpAddr和代码行地址范围AddrRange,若JmpAddr在AddrRange范围内转入步骤6),否则转入步骤7);

6)Run to地址设置为JmpAddr,转入步骤8);

7)Run to地址设置为AddrRange的结束地址,转入步骤8);

8)发送Run to命令,转入步骤9);

9)结束本次调试。

2、对仿真器状态的控制方法

使用两个线程实现对仿真器状态的控制:

●主线程,负责给仿真器发送调试命令,启动监视线程;

●监视线程,监测到仿真器是否处于停止状态。如果仿真器停止,则判断是否需要重复当前调试过程。如果不需要则向主窗口发送仿真器停止的消息,否则重复当前调试过程。

判断是否重复当前调试过程的依据是:当前光标所在代码行与调试程序地址所在代码行是否相同。如果相同,则需要重复调试过程;如果不同,则发送停止消息。

详细流程步骤如下:

1)进入主线程,并且调试窗口为静止状态,转入步骤2);

2)启动监视线程,监视线程启动成功转入步骤3),否则转入步骤8);

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京中电华大电子设计有限责任公司,未经北京中电华大电子设计有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200910243482.2/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top