[发明专利]程序调试方法及装置有效
申请号: | 202010139856.2 | 申请日: | 2020-03-03 |
公开(公告)号: | CN111400172B | 公开(公告)日: | 2023-04-28 |
发明(设计)人: | 张猛;冯大航;常乐 | 申请(专利权)人: | 北京声智科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京开阳星知识产权代理有限公司 11710 | 代理人: | 郭鑫 |
地址: | 100080 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 调试 方法 装置 | ||
本公开公开了一种程序调试方法、装置、电子设备和计算机可读存储介质。其中,该方法包括响应于第一程序发送的调试指令,解析所述调试指令,以获得第二程序中待调试的函数的函数名和参数;根据所述函数名获取所述函数;将所述参数传入所述函数中,执行所述函数;将所述函数的执行结果发送至所述第一程序,通过所述第一程序显示所述执行结果。通过解析所述调试指令,以获得第二程序中待调试的函数的函数名和参数,将所述参数传入所述函数中,执行所述函数,将所述函数的执行结果发送至所述第一程序,通过所述第一程序显示所述执行结果,能够支持在线调试,并且不会影响第二程序的正常运行。
技术领域
本公开涉及人计算机技术领域,特别是涉及一种程序调试方法、装置和计算机可读存储介质。
背景技术
随着互联网和智能终端的发展,各种各样的应用程序也随之出现。但是,这些应用程序都需要进行调试。通过调试可以测试应用程序是否存在故障,只有通过调试的应用程序才能正常使用。
在现有技术中,通常使用调试工具GDB进行调试,其中GDB是UNIX及UNIX-like下的调试工具,是一个比较成熟的调试工具。编译出的可执行程序,只需要用GDB加载就可以进行调试,支持断点、条件断点、内存内容打印、单步执行、函数提前返回等特性,也支持多线程、多进程程序的调试。
但是,GDB更多的用作离线调试,在离线调试时需要重新编译程序,并且需要加上GDB要求的-g调试选项,这样编译出的程序才能用GDB调试。发布的线上程序一般是没有-g选项的,属于release版本。这种离线调试比较麻烦,不能完全的还原线上运行情况。
当使用GDB进行在线调试时,需要使用attach命令连接到正在运行的程序上,但是在使用attach命令连接到运行中的程序时,需要停止执行并将程序置于调试控制下,这样就会导致正在运行的程序暂停,这对于一些线上程序是不可接受的。
发明内容
提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
本公开解决的技术问题是提供一种程序调试方法,以至少部分地解决现有技术中不能离线调试或离线调试会导致正在运行的程序暂停的技术问题。此外,还提供一种程序调试装置、程序调试硬件装置、计算机可读存储介质和程序调试终端。
为了实现上述目的,根据本公开的一个方面,提供以下技术方案:
一种程序调试方法,包括:
响应于第一程序发送的调试指令,解析所述调试指令,以获得第二程序中待调试的函数的函数名和参数;
根据所述函数名获取所述函数;
将所述参数传入所述函数中,执行所述函数;
将所述函数的执行结果发送至所述第一程序,通过所述第一程序显示所述执行结果。
进一步的,所述根据所述函数名获取所述函数,包括:
根据所述函数名获取所述函数对应的虚拟地址;其中,所述第二程序中每个函数分别对应一个虚拟地址;
根据所述虚拟地址获取所述函数。
进一步的,所述根据所述函数名获取所述函数对应的虚拟地址,包括:
根据所述函数名查找对应关系列表,从所述对应关系列表中查找到与所述函数名对应的虚拟地址;其中,所述对应关系列表中存储有所述第二程序中每个函数的函数名与虚拟地址间的对应关系。
进一步的,所述将所述参数传入所述函数中,执行所述函数,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京声智科技有限公司,未经北京声智科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010139856.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:双系统冰箱
- 下一篇:车载电子设备的控制方法、装置、存储介质、电子设备