[发明专利]一种程序调试方法、计算设备及储存介质有效
申请号: | 202110304942.9 | 申请日: | 2021-03-23 |
公开(公告)号: | CN112699056B | 公开(公告)日: | 2021-07-16 |
发明(设计)人: | 刘昌辉 | 申请(专利权)人: | 统信软件技术有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京瀚方律师事务所 11774 | 代理人: | 周红力 |
地址: | 100176 北京市大兴区北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 程序 调试 方法 计算 设备 储存 介质 | ||
1.一种程序调试方法,在操作系统中执行,所述操作系统适于管理存储设备,所述存储设备中存储所述程序执行过程中发生的各事件的相关数据和指示各事件发生的时间信息,所述方法包括:
从所述存储设备获取所述程序中发生的各事件的相关数据和对应时间信息,其中,所述相关数据包括:寄存器数据、线程栈数据、进程地址空间数据、时间戳、执行所述程序的进程的堆数据、全局变量数据中的一种或多种;
基于所获取的相关数据和时间信息绘制时间线和事件列表;
响应于用户点击所述时间线的时间点,查找与所点击的时间点相对应的事件,并获取与所查找到的事件相对应的相关数据;
呈现与所述时间点相对应事件的相关数据;
追踪所述程序的执行,以便当所述程序执行过程中发生预设事件时,暂停所述程序的执行;
获取所述预设事件的相关数据以及对应的时间信息;
将所述预设事件的相关数据和所述预设事件对应的时间信息保存至所述存储设备。
2.如权利要求1所述的方法,还包括步骤:
响应于用户点击事件列表的事件,获取与所点击的事件相对应的相关数据;以及
呈现与所点击事件相对应的相关数据。
3.如权利要求1所述的方法,其中,所述预设事件包括:系统调用、接收信号、总线事件以及X11事件中的一种或多种。
4.如权利要求3所述的方法,其中,所述操作系统包括虚拟系统,所述虚拟系统为模拟的、与所述操作系统相同的系统环境,所述暂停所述程序的执行的步骤包括:
判断所述预设事件类型,若所述预设事件是系统调用或接收信号,则直接暂停所述程序的执行;
若所述预设事件是总线事件或X11事件,则通过虚拟系统调用暂停所述程序的执行。
5.如权利要求4所述的方法,其中,所述若所述预设事件是总线事件或X11事件,则通过虚拟系统调用暂停所述程序的执行的步骤包括:
预先在程序的地址空间注入了一个动态库,其中,所述动态库拦截了总线事件和 X11事件的收发函数;
判断出现是否接收到总线事件或X11事件,若是,调用所述动态库的拦截函数;
根据已调用的拦截函数发起虚拟系统调用,暂停所述程序的执行。
6.如权利要求1所述的方法,其中,所述将所述预设事件的相关数据和所述预设事件对应的时间信息保存至所述存储设备的步骤包括:
基于数据流处理对象统一所述预设事件的相关数据和所述预设事件对应的时间信息的格式;
对统一格式的相关数据和时间信息进行压缩,并保存至所述存储设备。
7.如权利要求1所述的方法,其中,所述从所述存储设备获取所述程序中发生的各事件的相关数据和对应时间信息的步骤包括:
确定所述程序中发生的各事件的相关数据和对应时间信息的存储地址;
从所述存储地址中读取所述程序执行过程中发生的各事件的相关数据和对应时间信息。
8.一种计算设备,包括:
至少一个处理器;以及
存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-7中任一项所述的方法的指令。
9.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-7中任一项所述方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于统信软件技术有限公司,未经统信软件技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110304942.9/1.html,转载请声明来源钻瓜专利网。