【技术实现步骤摘要】
应用堆栈信息获取方法及装置、堆栈信息解析方法及装置
本专利技术涉及网络信息处理领域,特别是涉及一种应用堆栈信息获取方法以及一种应用堆栈信息获取装置、一种堆栈信息解析方法以及一种堆栈信息解析装置。
技术介绍
目前在需要采集堆栈的信息时,一般都是通过dvm的native函数dvmFillInStackTraceInternal或者系统标准的java函数Throwable::fillInstackTrace来获取堆栈信息,得到的堆栈为相应的堆栈字符串内容。这种堆栈获取方法可以正确地获取堆栈信息,然而,由于堆栈是显示为纯文本信息,一层堆栈信息平均要在60字节左右,如果该堆栈深度为16层,那么该堆栈占用的内存大小就要到达1k,随着堆栈深度的增加,所占用的内存也会持续增加。
技术实现思路
基于此,本专利技术实施例提供一种应用堆栈信息获取方法以及一种应用堆栈信息获取装置、一种堆栈信息解析方法以及一种堆栈信息解析装置,以使得堆栈信息占用尽量少的内存,从而能够在应用到应用信息跟踪中时以最小的性能损耗获取堆栈的跟踪采样。为达到上述目的,本专利技术实施例采用以下技术方案:一种应用堆栈信息获取方法,包括步骤:获取当前堆栈的内存偏移信息,所述内存偏移信息包括函数地址和PC偏移值,根据获取的内存偏移信息生成内存偏移结构存储文件;获取虚拟内存和磁盘文件的映射关系,根据所述映射关系记录映射信息,生成内存映射结构存储文件,记录的所述映射信息包括虚拟内存地址范围、内存文件偏移量、以及文件路径;将所述内存偏移结构存储文件、所述内存映射结构存储文件进行存储。一种堆栈信息解析方法,包括步骤:获取记录内 ...
【技术保护点】
一种应用堆栈信息获取方法,其特征在于,包括步骤:获取当前堆栈的内存偏移信息,所述内存偏移信息包括函数地址和PC偏移值,根据获取的内存偏移信息生成内存偏移结构存储文件;获取虚拟内存和磁盘文件的映射关系,根据所述映射关系记录映射信息,生成内存映射结构存储文件,记录的所述映射信息包括虚拟内存地址范围、内存文件偏移量、以及文件路径;将所述内存偏移结构存储文件、所述内存映射结构存储文件进行存储。
【技术特征摘要】
1.一种应用堆栈信息获取方法,其特征在于,包括步骤:获取当前堆栈的内存偏移信息,所述内存偏移信息包括函数地址和PC偏移值,根据获取的内存偏移信息生成内存偏移结构存储文件;获取虚拟内存和磁盘文件的映射关系,根据所述映射关系记录映射信息,生成内存映射结构存储文件,记录的所述映射信息包括虚拟内存地址范围、内存文件偏移量、以及文件路径;将所述内存偏移结构存储文件、所述内存映射结构存储文件进行存储。2.根据权利要求1所述的应用堆栈信息获取方法,其特征在于,包括下述各项中的至少一项:记录的所述映射信息还包括文件节点号;在堆栈信息采集结束时,采集满足预设条件的dex文件的映射数据,从所述映射数据中获得并记录所述映射信息。3.根据权利要求1所述的应用堆栈信息获取方法,其特征在于,包括下述各项中的至少一项:从获取堆栈信息时建立的stackInfo数组中获取所述PC偏移;将获取堆栈信息时建立的stackInfo数组的method指针指向的Method类的结构类型中的insns的值,确定为所述函数地址;将所述内存偏移结构存储文件、所述内存映射结构存储文件压缩后进行存储;将存储的所述内存偏移结构存储文件、所述内存映射结构存储文件向后台服务器发送,由后台服务器根据所述内存偏移结构存储文件、所述内存映射结构存储文件进行堆栈信息解析。4.一种堆栈信息解析方法,其特征在于,包括步骤:获取记录内存偏移信息的内存偏移结构存储文件、记录映射信息的内存映射结构存储文件,所述内存偏移信息包括函数地址和PC偏移值,所述映射信息包括虚拟内存地址范围、内存文件偏移量、以及文件路径;获取记录文件符号表结构信息的文件符号表结构文件,所述文件符号表结构信息包括函数代码执行的起始位置、函数信息以及调试信息,所述调试信息包括PC相对起始位置对应的代码行号;根据所述文件路径从所述文件符号表结构文件中获取对应的文件符号表结构信息,通过所述函数地址、虚拟内存地址范围、内存文件偏移量将所述函数地址转换为磁盘文件地址,并用所述磁盘文件地址在获取的所述文件符号表结构信息中查找到对应的函数信息和调试信息,并根据所述PC偏移值在该调试信息中查找到对应的代码行,获得解析后的堆栈信息。5.根据权利要求4所述的堆栈信息解析方法,其特征在于:包括下述各项中的至少一项:所述映射信息还包括文件节点号;在根据所述文件路径从所述文件符号表结构文件中获取对应的文件符号表结构信息时,结合所述文件节点号获取对应的文件符号表结构信息;所述函数信息包括文件名、类名、函数名;从前端应用终端接收获得所述内存偏移结构存储文件、所述内存映射结构存储文件。6.一种应用堆栈信息获取装置,其特征在于,包括:内存偏移获取模块,用于获取当前堆栈的内存偏移信息,所述内存偏移信息包括函数...
【专利技术属性】
技术研发人员:刘华星,李昶博,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。