[发明专利]一种程序调试方法、计算设备及储存介质有效
申请号: | 202110304942.9 | 申请日: | 2021-03-23 |
公开(公告)号: | CN112699056B | 公开(公告)日: | 2021-07-16 |
发明(设计)人: | 刘昌辉 | 申请(专利权)人: | 统信软件技术有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京瀚方律师事务所 11774 | 代理人: | 周红力 |
地址: | 100176 北京市大兴区北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 程序 调试 方法 计算 设备 储存 介质 | ||
本发明公开了一种程序调试方法、计算设备及存储介质,该方法包括:从所述存储设备获取所述程序中发生的各事件的相关数据和对应时间信息;基于所获取的相关数据和时间信息绘制时间线和事件列表;响应于用户点击所述时间线的时间点,查找与所点击的时间点相对应的事件,并获取与所查找到的事件相对应的相关数据;以及呈现与所述时间点相对应事件的相关数据。通过上述方法,能够回放程序出错之前的执行过程,因此调试人员可以快速定位程序出错的原因,提高定位程序出错原因的准确性。
技术领域
本发明涉及操作系统技术领域,特别涉及一种应用程序的调试方法、计算设备及储存介质。
背景技术
应用软件(Application),是用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的程序的集合。应用软件能够满足不同领域、不同问题的应用需求,因此,应用软件的使用越来越广泛。
然而,只有在应用软件中的程序调试无误后,才会将应用软件应用于实际环境中,因此,对程序进行调试,是应用软件开发过程中的重要环节。目前在Linux操作系统中,通常记录程序崩溃或出现故障的最后一刻的数据,并将事件记录数据在用户界面进行展示,用户通过点击时间线查看应用程序崩溃或出现故障的最后一刻的数据,以找出程序报错的原因。但是,由于程序发生崩溃或出现故障的最后一刻的数据信息较少,无法准确、快速地追溯程序报错的原因。
为此,需要一种程序调试方法来解决上述技术方案中存在的问题。
发明内容
为此,本发明提供一种程序调试方法,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供了一种程序调试方法, 在操作系统中执行,所述操作系统适于管理存储设备,所述存储设备中存储所述程序执行过程中发生的各事件的相关数据和指示各事件发生的时间信息,所述方法包括:
从所述存储设备获取所述程序中发生的各事件的相关数据和对应时间信息;
基于所获取的相关数据和时间信息绘制时间线和事件列表;
响应于用户点击所述时间线的时间点,查找与所点击的时间点相对应的事件,并获取与所查找到的事件相对应的相关数据;以及
呈现与所述时间点相对应事件的相关数据。
可选地,还包括步骤:
响应于用户点击事件列表的事件,获取与所点击的事件相对应的相关数据;以及
呈现与所点击事件相对应的相关数据。
可选地,还包括步骤:
追踪所述程序的执行,以便当所述程序执行过程中发生预设事件时,暂停所述程序的执行;
获取所述预设事件的相关数据以及对应的时间信息;
将所述预设事件的相关数据和所述预设事件对应的时间信息保存至所述存储设备。
可选地,所述预设事件包括:系统调用、接收信号、总线事件以及X11事件中的一种或多种。
可选地,所述操作系统包括虚拟系统,所述虚拟系统为模拟的、与所述操作系统相同的系统环境,所述暂停所述程序的执行的步骤包括:
判断所述预设事件类型,若所述预设事件是系统调用或接收信号,则直接暂停所述程序的执行;
若所述预设事件是总线事件或X11事件,则通过虚拟系统调用暂停所述程序的执行。
可选地,所述若所述预设事件是总线事件或X11事件,则通过虚拟系统调用暂停所述程序的执行的步骤包括:
预先在程序的地址空间注入了一个动态库,其中,所述动态库拦截了总线事件和X11事件的收发函数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于统信软件技术有限公司,未经统信软件技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110304942.9/2.html,转载请声明来源钻瓜专利网。