[发明专利]一种日志生成方法及装置在审
申请号: | 202210769922.3 | 申请日: | 2022-06-30 |
公开(公告)号: | CN115033223A | 公开(公告)日: | 2022-09-09 |
发明(设计)人: | 李凯 | 申请(专利权)人: | 联想(北京)有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41;G06F11/36;G06F16/18 |
代理公司: | 北京金信知识产权代理有限公司 11225 | 代理人: | 喻嵘 |
地址: | 100085 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 日志 生成 方法 装置 | ||
本公开涉及一种日志生成方法及装置,该日志生成方法包括:确定程序的异常运行情况;根据所述异常运行情况,确定异常发生的代码位置;根据所述代码位置获取所述代码位置之前预设范围内的代码文件;对所述代码文件进行分析,提取所述代码文件中的关键信息;基于所述关键信息生成用于对所述异常进行分析的日志文件。
技术领域
本公开涉及计算机技术领域,具体涉及一种日志生成方法及装置。
背景技术
程序调试运行时,有时会出现运行错误,在特定代码行崩溃。此时,可以使用调试工具捕获崩溃点当前的状态。然而,导致程序崩溃的原因有可能是崩溃点前面的一些代码中的变量运行出错或者状态错误。因此,将“崩溃点前面一定范围(如前100行)中的特定变量状态”输出,有助于分析崩溃原因。
目前,输出“崩溃点前面一定范围中的特定变量状态”需要开发人员手动在程序源码崩溃代码前面一定范围人工编写代码以输出调试日志。这样程序再次运行崩溃后,可以打印输出调试日志。但是,手动编写代码添加调试日志费时费力,且编写的调试日志代码重复、机械、分散,不易维护。
发明内容
本公开实施例的目的在于提供一种日志生成方法及装置,以解决现有技术中需要手动编写调试日志费时费力,且编写的日志代码不易维护的技术问题。
一方面,本公开实施例提供了一种日志生成方法,包括:
确定程序的异常运行情况;
根据所述异常运行情况,确定异常发生的代码位置;
根据所述代码位置获取所述代码位置之前预设范围内的代码文件;
对所述代码文件进行分析,提取所述代码文件中的关键信息;
基于所述关键信息生成用于对所述异常进行分析的日志文件。
在一些实施例中,根据所述代码位置获取所述代码位置之前预设范围内的代码文件,包括:
对所述代码位置的程序代码进行分析,确定所述程序代码的代码结构;
根据所述代码结构,从所述代码位置之前的程序代码中查找与所述代码位置的程序代码关联的关联代码;
将包含所述关联代码的完整的程序执行函数确定为所述代码文件。
在一些实施例中,根据所述代码位置获取所述代码位置之前预设范围内的代码文件,包括:
获取所述代码位置之前预设数量代码行的代码文件。
在一些实施例中,所述方法还包括:
如果所述异常发生的代码位置为所述程序的起始位置,将所述程序的全部程序代码确定为所述代码文件。
在一些实施例中,基于所述关键信息生成用于对所述异常进行分析的日志文件,包括:
基于所述关键信息生成对应的日志代码;
将所述日志代码插入所述异常发生的代码位置,编译生成可执行程序;
在所述可执行程序的运行过程中,基于生成的所述日志代码,生成对应的日志文件并输出。
在一些实施例中,所述关键信息包括关键变量、所述关键变量对应的变量参数、关键函数、所述关键函数对应的函数参数、所述关键函数对应的返回值以及所述关键函数的执行顺序中的至少一种。
在一些实施例中,所述方法还包括:
以浮窗或图层形式在所述程序的显示界面输出显示所述日志文件,其中,所述日志文件显示于所述显示界面的顶部或所述异常发生的代码位置的一侧。
在一些实施例中,确定程序的异常运行情况之后,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于联想(北京)有限公司,未经联想(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210769922.3/2.html,转载请声明来源钻瓜专利网。