软件调试方法、装置、电子设备及存储介质制造方法及图纸

技术编号:30641392 阅读:17 留言:0更新日期:2021-11-04 00:38
本发明专利技术实施例提供了一种软件调试方法、装置、电子设备及储存介质。该方法包括:在被调试主机的处理器触发处理器断点调试程序时,执行处理器断点调试程序的入口地址处预先存入的跳转指令,跳转指令用于跳转到存储调试服务程序的目标地址;在被调试主机的处理器执行跳转指令后,在被调试主机的处理器上运行调试服务程序,基于调试服务程序中的远程串行通信协议,与调试主机上运行的调试程序进行通信,实现对被调试主机的处理器上程序的调试。本发明专利技术无需专用于处理器断点调试的仿真器等硬件辅助,可直接对处理器上软件进行调试和监控,降低了软件调试成本,且实现了快速对软件进行调试,对于没有设置专用于处理器断点调试的接口的产品同样适用。的产品同样适用。的产品同样适用。

【技术实现步骤摘要】
软件调试方法、装置、电子设备及存储介质


[0001]本专利技术涉及软件调试
,特别是涉及一种软件调试方法、一种软件调试装置、一种电子设备以及一种存储介质。

技术介绍

[0002]一般在软件开发阶段需要对软件进行调试和性能优化,或者在操作系统出现异常时,需要对寄存器、进程等信息进行分析。但在软件调试时,尤其是对于发布版本的软件往往本身没有集成调试功能,调试起来非常困难。处理器中可以包含一些调试接口,用于实现对处理器的调试,常见的调试接口如JTAG(Joint Test Action Group,联合测试行为组织)调试接口和EJTAG(Enhanced Joint Test Action Group,增强联合测试行为组织)调试接口。
[0003]如图1所示,是常见的EJTAG调试的硬件连接示意图,调试主机(Debug host)通过以太网(Ethernet),RS

232(异步传输标准接口)等接口与EJTAG仿真器,即TAP access(Test Access Port access,测试接入端口通道)连接,该TAP access用于进行EJTAG探测(EJTAG probe),并通过JTAG测试接入端口类型的接口(JTAG TAP interface)与系统原型(System Prototype)连接,其中,在系统原型中,其它系统逻辑(Other System Logic)通过JTAG扫描链(JTAG scan chain)与包括具有EJTAG的CPU(CPU with EJTAG)的SOC(System On Chip,片上系统)、ASIC(Application Specific Integrated Circuit,专用集成电路)或ASSP(Application Specific Standard Parts,专用标准产品)连接。
[0004]常规EJTAG调试方法需要使用专门的EJTAG仿真器和在另外一台电脑上运行调试软件,才能对被调试主机进行调试,成本高且速度慢,而且很多产品上为了节约尺寸或者减少电磁干扰,被调试主机上没有设置EJTAG接口,无法插入EJTAG仿真器,没法实现这种调试,这一问题亟待解决。

技术实现思路

[0005]鉴于上述问题,提出了本专利技术实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种软件调试方法,以不用EJTAG仿真器硬件辅助的情况下,直接对处理器上软件进行调试。
[0006]相应的,本专利技术实施例还提供了一种软件调试装置、一种电子设备以及一种存储介质,用以保证上述方法的实现及应用。
[0007]为了解决上述问题,本专利技术实施例公开了一种软件调试方法,包括:
[0008]在被调试主机的处理器触发处理器断点调试程序时,执行所述处理器断点调试程序的入口地址处预先存入的跳转指令,所述跳转指令用于跳转到存储调试服务程序的目标地址;
[0009]从所述目标地址获取所述调试服务程序,并运行所述调试服务程序;
[0010]基于所述调试服务程序中的远程串行通信协议,与调试主机上运行的调试程序进
行通信。
[0011]可选的,在被调试主机的处理器触发处理器断点调试程序之前,所述方法还包括:
[0012]在所述目标地址中存储所述调试服务程序的二进制文件,并保存存储所述调试服务程序的二进制文件之前所述目标地址处存储的信息;
[0013]所述运行所述调试服务程序包括:
[0014]获取所述二进制文件中的可执行指令,所述可执行指令用于对所述被调试主机的处理器上运行的软件进行调试;
[0015]执行所述可执行指令。
[0016]可选的,所述入口地址为入口物理地址,所述方法还包括:
[0017]在被调试主机的处理器触发处理器断点调试程序时,若所述处理器断点调试程序的入口地址处未预先存入所述跳转指令,则将处理器当前使用的内存虚拟地址映射到所述入口物理地址,并将所述跳转指令拷贝到所述入口物理地址中。
[0018]可选的,所述方法还包括:
[0019]在被调试主机的处理器触发处理器断点调试程序时,若所述目标地址处未存储所述调试服务程序,则通过在所述被调试主机的启动加载程序命令行或者操作系统命令行,执行拷贝所述调试服务程序的命令,以使所述调试服务程序被拷贝到所述目标地址处。
[0020]可选的,所述目标地址为所述被调试主机的预设物理地址。
[0021]本专利技术实施例还公开了一种软件调试装置,包括:
[0022]跳转模块,用于在被调试主机的处理器触发处理器断点调试程序时,执行所述处理器断点调试程序的入口地址处预先存入的跳转指令,所述跳转指令用于跳转到存储调试服务程序的目标地址;
[0023]程序运行模块,用于从所述目标地址获取所述调试服务程序,并运行所述调试服务程序;
[0024]调试模块,用于基于所述调试服务程序中的远程串行通信协议,与调试主机上运行的调试程序进行通信。
[0025]可选的,所述装置还包括:
[0026]保存模块,用于在被调试主机的处理器触发处理器断点调试程序之前,在所述目标地址中存储所述调试服务程序的二进制文件,并保存存储所述调试服务程序的二进制文件之前所述目标地址处存储的信息;
[0027]所述程序运行模块包括:
[0028]指令获取子模块,用于获取所述二进制文件中的可执行指令,所述可执行指令用于对所述被调试主机的处理器上运行的软件进行调试;
[0029]指令执行子模块,用于执行所述可执行指令。
[0030]可选的,所述入口地址为入口物理地址,所述装置还包括:
[0031]第一拷贝模块,用于在被调试主机的处理器触发处理器断点调试程序时,若所述处理器断点调试程序的入口地址处未预先存入所述跳转指令,则将处理器当前使用的内存虚拟地址映射到所述入口物理地址,并将所述跳转指令拷贝到所述入口物理地址中。
[0032]可选的,所述装置还包括:
[0033]第二拷贝模块,用于在被调试主机的处理器触发处理器断点调试程序时,若所述
目标地址处未存储所述调试服务程序,则通过在所述被调试主机的启动加载程序命令行或者操作系统命令行,执行拷贝所述调试服务程序的命令,以使所述调试服务程序被拷贝到所述目标地址处。
[0034]可选的,所述目标地址为所述被调试主机的预设物理地址。
[0035]本专利技术实施例还公开了一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
[0036]存储器,用于存放计算机程序;
[0037]处理器,用于执行存储器上所存放的程序时,实现如上所述的方法步骤。
[0038]本专利技术实施例还公开了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本专利技术实施例中一个或多个所述的软件调试方法。
[003本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软件调试方法,其特征在于,包括:在被调试主机的处理器触发处理器断点调试程序时,执行所述处理器断点调试程序的入口地址处预先存入的跳转指令,所述跳转指令用于跳转到存储调试服务程序的目标地址;从所述目标地址获取所述调试服务程序,并运行所述调试服务程序;基于所述调试服务程序中的远程串行通信协议,与调试主机上运行的调试程序进行通信。2.根据权利要求1所述的软件调试方法,其特征在于,在被调试主机的处理器触发处理器断点调试程序之前,所述方法还包括:在所述目标地址中存储所述调试服务程序的二进制文件,并保存存储所述调试服务程序的二进制文件之前所述目标地址处存储的信息;所述运行所述调试服务程序包括:获取所述二进制文件中的可执行指令,所述可执行指令用于对所述被调试主机的处理器上运行的软件进行调试;执行所述可执行指令。3.根据权利要求1所述的软件调试方法,其特征在于,所述入口地址为入口物理地址,所述方法还包括:在被调试主机的处理器触发处理器断点调试程序时,若所述处理器断点调试程序的入口地址处未预先存入所述跳转指令,则将处理器当前使用的内存虚拟地址映射到所述入口物理地址,并将所述跳转指令拷贝到所述入口物理地址中。4.根据权利要求1

3任一项所述的软件调试方法,其特征在于,所述方法还包括:在被调试主机的处理器触发处理器断点调试程序时,若所述目标地址处未存储所述调试服务程序,则通过在所述被调试主机的启动加载程序命令行或者操作系统命令行,执行拷贝所述调试服务程序的命令,以使所述调试服务程序被拷贝到所述目标地址处。5.根据权利要求1

4任一项所述的软件调试方法,其特征在于,所述目标地址为所述被调试主机的预设物理地址。6.一种软件调试装置,其特征在于,包括:跳转模块,用于在被调试主机的处理器触发处理器断点调试程序时,执行所述处理器断点调试程序的入口地址处预先存入的跳转指令,所述跳转指令用于跳转到存储调试服务程序的目标地址;程序运行模块,用于从所述目标地址获取所述调试服务程序,并运行所述调试服务程序;调试模块,用于基于...

【专利技术属性】
技术研发人员:乔崇
申请(专利权)人:龙芯中科成都技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1