内存故障定位方法、装置及终端设备制造方法及图纸

技术编号:35648353 阅读:13 留言:0更新日期:2022-11-19 16:42
本申请实施例提供一种内存故障定位方法、装置及终端设备。该方法包括:通过内核程序确定内存异常时,发送内存异常信号;通过用户程序获取所述内存异常信号,生成所述内存异常信号对应的第一日志信息,并通过所述用户程序向所述内核程序发送所述内存异常信号;通过所述内核程序生成所述内存异常信号对应的第二日志信息,所述第二日志信息包括异常内存的地址、所述异常内存的内存信息和调用信息;根据所述第一日志信息和所述第二日志信息,确定所述异常内存的故障原因。提高了定位内存故障的准确性。准确性。准确性。

【技术实现步骤摘要】
内存故障定位方法、装置及终端设备


[0001]本申请实施例涉及计算机
,尤其涉及一种内存故障定位方法、装置及终端设备。

技术介绍

[0002]在使用终端设备运行应用程序的过程中,若内存数据突然发生改变,应用程序会出现卡顿、退出等情况。为了避免终端设备运行应用程序时再次出现相同的情况,终端设备可以在内存数据存在异常时,确定存在异常的内存数据,用于分析产生异常的原因。
[0003]在相关技术中,可以通过如下方式定位内存故障:终端设备根据异常的内存数据,确定对应的内存信息,输出日志文件。根据日志文件,分析内存故障的原因。在上述过程中,由于根据日志文件,可能不能找到内存故障的原因,无法解决内存故障,导致定位内存故障的准确性较低。

技术实现思路

[0004]本申请实施例提供一种内存故障定位方法、装置及终端设备,用以解决定位内存故障的准确性较低的问题。
[0005]第一方面,本申请实施例提供一种内存故障定位方法,包括:
[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]根据所述第一物理地址确定所述内存信息和所述调用信息;其中,所述异常内存的地址包括所述第一虚拟地址和所述第一物理地址。
[0039]在一种可能的实施方式中,所述第二生成模块具体用于:
[0040]获取虚拟地址和物理地址之间的对应关系;
[0041]根据所述第一虚拟地址和所述对应关系,确定所述第一物理地址。
[0042]在一种可能的实施方式中,所述第二生成模块具体用于:
[0043]根据所述第一物理地址,确定所述异常内存对应的第一内存,所述第一内存包括所述异常内存和所述异常内存相邻的内存;
[0044]获取所述第一内存在异常发生时刻之前预设时段内的存储的内存数据、以及对所述第一内存的内存操作数据,得到所述内存信息,所述内存信息包括所述内存数据和所述内存操作数据;
[0045]根据所述第一内存确定在所述异常发生时刻之前预设时段内的所述调用信息。
[0046]在一种可能的实施方式中,所述第一生成模块具体用于:
[0047]通过所述用户程序中的预设函数,拦截获取所述内存异常信号。
[0048]在一种可能的实施方式中,所述第一生成模块具体用于:
[0049]根据所述内存异常信号,启动调试工具;
[0050]通过所述调试工具,确定所述异常内存对应的进程信息、堆栈调用信息和寄存器信息,所述第一日志信息包括所述进程信息、所述堆栈调用信息和所述寄存器信息。
[0051]在一种可能的实施方式中,所述装置还包括存储模块。
[0052]其中,所述存储模块用于:
[0053]存储所述第一日志信息;和/或,
[0054]存储所述第二日志信息。
[0055]在一种可能的实施方式中,所述第二日志信息还包括内存映像信息。
[0056]第三方面,本申请提供一种芯片,所述芯片上存储有计算机程序,所述计算机程序被所述芯片执行时,实现如第一方面任一项所述的方法。
[0057]第四方面,本申请提供一种芯片模组,所述芯片模组上存储有计算机程序,所述计算机程序被所述芯片模组执行时,实现如第一方面任一项所述的方法。
[0058]第五方面,本申请实施例提供一种终端设备,包括:
[0059]至少一个处理器;以及
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存故障定位方法,其特征在于,包括:通过内核程序确定内存异常时,发送内存异常信号;通过用户程序获取所述内存异常信号,生成所述内存异常信号对应的第一日志信息,并通过所述用户程序向所述内核程序发送所述内存异常信号;通过所述内核程序生成所述内存异常信号对应的第二日志信息,所述第二日志信息包括异常内存的地址、所述异常内存的内存信息和调用信息;根据所述第一日志信息和所述第二日志信息,确定所述异常内存的故障原因。2.根据权利要求1所述的方法,其特征在于,通过所述内核程序生成所述内存异常信号对应的第二日志信息,包括:通过所述内核程序在所述内存异常信号中获取第一虚拟地址;获取所述第一虚拟地址对应的第一物理地址;根据所述第一物理地址确定所述内存信息和所述调用信息;其中,所述异常内存的地址包括所述第一虚拟地址和所述第一物理地址。3.根据权利要求2所述的方法,其特征在于,获取所述第一虚拟地址对应的第一物理地址,包括:获取虚拟地址和物理地址之间的对应关系;根据所述第一虚拟地址和所述对应关系,确定所述第一物理地址。4.根据权利要求2或3所述的方法,其特征在于,根据所述第一物理地址确定所述内存信息和所述调用信息,包括:根据所述第一物理地址,确定所述异常内存对应的第一内存,所述第一内存包括所述异常内存和所述异常内存相邻的内存;获取所述第一内存在异常发生时刻之前预设时段内的存储的内存数据、以及对所述第一内存的内存操作数据,得到所述内存信息,所述内存信息包括所述内存数据和所述内存操作数据;根据所述第一内存确定在所述异常发生时刻之前预设时段内的所述调用信息。5.根据权利要求1

4任一项所述的方法,其特征在于,通过用户程序获取所述内存异常信号,包括:通过所述用户程序中的预设函数,拦截获取所述内存异常信号。6.根据权利要求1
...

【专利技术属性】
技术研发人员:石学可
申请(专利权)人:展讯通信天津有限公司
类型:发明
国别省市:

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

1