一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

程序调试方法、装置及可读存储介质与流程

2022-02-24 12:53:46 来源:中国专利 TAG:


1.本发明涉及软件调试技术领域,具体涉及一种程序调试方法、装置及计算机可读存储介质。


背景技术:

2.当系统应用程序产生错误(bug)时,通常是在现场可编程门阵列(field-programmable gate array,fpga)验证时产生的问题,进行系统应用程序仿真时,这些问题容易被忽略或者本身不易产生。目前,一般通过两种方式查找此类错误,其中,第一种方式为设置调试端口连接内部逻辑电路,并且利用逻辑分析仪获取信号并找到错误,但是调试端口的设置不一定就在错误发生的位置上,可能需要多次重复和分析才能正确设置调试端口,并找到错误发生的原因,查找错误的过程比较费时。第二种方式为利用仿真的设备搭配软件代码找到错误,这种方式虽然查找错误的效率比较高,但是仿真的设备和环境成本较高。


技术实现要素:

3.鉴于以上内容,有必要提出一种可快速查找程序错误,且成本较低的程序调试方法、装置及可读存储介质。
4.本技术的第一方面提供一种程序调试方法,用于识别并修复待调试程序中的错误,所述方法包括:
5.建立待调试程序对应的模拟运行环境;
6.将所述待调试程序中的指令和与所述指令对应的理论波形进行映射;
7.在所述待调试程序内设置触发点;
8.从所述触发点运行所述待调试程序,并存储对应的仿真波形;以及
9.将所述仿真波形与所述理论波形进行对比,当所述仿真波形与所述理论波形比对不一致时,识别所述错误,并对所述错误进行修复。
10.优选地,所述“建立待调试程序对应的模拟运行环境”的步骤包括:
11.读取所述待调试程序对应的程序文件;以及
12.运行所述的程序文件,以模拟所述待调试程序执行的过程。
13.优选地,所述“在所述待调试程序内设置触发点”的步骤包括:
14.模拟执行所述待调试程序,并根据执行结果确定产生所述错误的指令;以及
15.在产生所述错误的指令执行之前设置所述触发点。
16.优选地,所述“在所述待调试程序内设置触发点”的步骤包括:
17.在所述待调试程序的中间位置设置触发点。
18.优选地,所述程序调试方法还包括:
19.判断所述错误是否修复完毕;以及
20.如果所述错误没有修复完毕,则返回至所述“在所述待调试程序内设置触发点”的
步骤,直至所述错误修复完毕结束。
21.优选地,所述“将所述待调试程序中的指令和与所述指令对应的理论波形进行映射”的步骤包括:
22.获取所述指令与机器代码编译器的列表文件;以及
23.根据所述列表文件将所述指令与所述理论波形进行对应。
24.优选地,所述程序文件为bin格式或者hex格式文件。
25.优选地,所述触发点为基本输入输出信号。
26.本技术的第二方面提供一种程序调试装置,所述程序调试装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现上述程序调试方法。
27.本技术的第三方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的程序调试方法。
28.本发明所述程序调试方法、装置及计算机可读存储介质通过设置触发点,并从所述触发点对待调试程序进行仿真及仿真波形数据的存储,可减少调试过程中重复的次数,减少调试时间,加快仿真速度,同时,可减少存储仿真波形数据所占用的硬盘空间。此外,调试过程无需配置仿真设备,因此,成本较低。
附图说明
29.图1是本发明一实施方式的程序调试装置的功能模块图。
30.图2是本发明一实施方式的程序调试系统的功能模块图。
31.图3是本发明一实施方式的程序调试方法的流程图。
32.主要元件符号说明
33.程序调试装置1存储器10处理器20显示器30输入装置40程序调试系统100建立模块101映射模块102设置模块103仿真模块104判断模块105
34.如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
35.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
36.进一步需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
37.图1为本发明程序调试装置较佳实施例的功能模块图。
38.请参阅图1,本实施例中,程序调试装置1可为计算机装置。所述程序调试装置1包括电性连接的存储器10、至少一个处理器20、显示器30、输入装置40以及存储在所述存储器10中并可在所述处理器20上运行的程序调试系统100。
39.所述处理器20执行所述统程序调试系统100时实现程序调试方法实施例中的步骤,例如,图3所示的步骤s301~s306。或者,所述处理器20执行所述程序调试系统100时实现程序调试系统100实施例中各模块的功能,例如图2中的模块101~105。
40.所述程序调试系统100可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器10中,并由所述处理器20执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,所述指令段用于描述所述程序调试系统100在所述程序调试装置1中的执行过程。例如,所述程序调试系统100可以被分割成图2中的建立模块101、映射模块102、设置模块103、仿真模块104、及判断模块105。各模块具体功能参见下图2中各模块的功能。
41.本领域技术人员可以理解,所述示意图仅是程序调试装置1的示例,并不构成对程序调试装置1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述程序调试装置1还可以包括网络接入设备、总线等。
42.所称处理器20可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者所述处理器20也可以是任何常规的处理器等,所述处理器20可以利用各种接口和总线连接程序调试装置1的各个部分。
43.所述存储器10可用于存储所述程序调试程序100和/或模块,所述处理器20通过运行或执行存储在所述存储器10内的计算机程序和/或模块,以及调用存储在存储器10内的数据,实现所述程序调试装置1的各种功能。所述存储器10可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
44.所述显示器30用于显示进行程序调试过程中的各种数据,例如,所述程序运行指令的理论波形以及仿真波形。
45.所述输入装置40可包括鼠标、键盘等输入设备,用于接收调试人员输入的数据。
46.图2为本发明程序调试系统较佳实施例的功能模块图。
47.参阅图2所示,程序调试系统100可以包括建立模块101、映射模块102、设置模块103、仿真模块104以及判断模块105。在一实施方式中,上述模块可以为存储于所述存储器
10中且可被所述处理器20调用执行的可程序化软件指令。可以理解的是,在其他实施方式中,上述模块也可为固化于所述处理器20中的程序指令或固件(firmware)。
48.所述建立模块101用于建立待调试程序对应的模拟运行环境。所述映射模块102用于将所述待调试程序中的指令和与所述指令对应的理论波形进行映射。所述设置模块103用于在所述待调试程序内设置触发点。所述仿真模块104用于从所述触发点运行所述待调试程序,并存储对应的仿真波形。所述判断模块105用于将所述仿真波形与所述理论波形进行对比,当所述仿真波形与所述理论波形比对不一致时,识别所述错误,并对所述错误进行修复。
49.图3为本发明一实施方式中程序调试方法的流程图。根据不同的需求,所述流程图中步骤的顺序可以改变,某些步骤可以省略。
50.步骤s301,所述建立模块101建立待调试程序对应的模拟运行环境。
51.在本较佳实施例中,所述“建立待调试程序对应的模拟运行环境”的步骤包括:
52.步骤a1,读取所述待调试程序对应的程序文件。所述程序文件为bin格式或者hex格式文件,预存于所述存储器10内。
53.步骤a2,运行所述的程序文件,以模拟所述待调试程序执行的过程。
54.步骤s302,所述映射模块102将所述待调试程序中的指令和与所述指令对应的理论波形进行映射。所述理论波形是指所述指令中不存在错误时,执行所述指令生成的波形。
55.在本较佳实施例中,所述“将所述待调试程序中的指令和与所述指令对应的理论波形进行映射”的步骤包括:
56.步骤b1,获取所述指令与机器代码编译器的列表文件。所述列表文件可预存于所述存储器10内。
57.步骤b2,根据所述列表文件将所述指令与所述理论波形进行对应。
58.步骤s303,所述设置模块103在所述待调试程序内设置触发点。通过所述触发点,在后续仿真过程中,可方便查找对应的位置。
59.在本发明第一较佳实施例中,所述“在所述待调试程序内设置触发点”的步骤包括:
60.步骤c1,模拟执行所述待调试程序,并根据执行结果确定产生所述错误的指令。
61.步骤c2,在产生所述错误的指令执行之前设置所述触发点。
62.在本发明第二较佳实施例中,所述“在所述程序内设置触发点”的步骤包括:在所述待调试程序的中间位置设置触发点。
63.步骤s304,所述仿真模块104从所述触发点运行所述程序,并存储对应的仿真波形。
64.步骤s305,所述判断模块105将所述仿真波形与所述理论波形进行对比,当所述仿真波形与所述理论波形比对不一致时,识别所述错误,并对所述错误进行修复。可以理解,所述判断模块105可利用所述显示器30显示所述仿真波形与所述理论波形,方便调试人员查看。
65.步骤s306,所述判断模块105还进一步判断所述错误是否修复完毕,具体地,可由调试人员判断错误是否修复完毕,所述判断模块105利用所述输入装置40获取所述判断结果,如果没有修复完毕,则返回至所述步骤s303,再次重复步骤s303至s305,直至所述错误
修复完毕结束。如果已经修复完毕,则结束流程。
66.上述程序调试方法、装置1及计算机可读存储介质通过设置触发点,并从所述触发点对待调试程序进行仿真及仿真波形数据的存储,可减少调试过程中重复的次数,减少调试时间,加快仿真速度,同时,可减少存储仿真波形数据所占用的硬盘空间。此外,调试过程无需配置仿真设备,因此,成本较低。
67.对本领域的技术人员来说,可以根据本发明的发明方案和发明构思结合生产的实际需要做出其他相应的改变或调整,而这些改变和调整都应属于本发明所公开的范围。
68.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献