ARM架构PON网关手动输出用户层程序调用栈的实现方法技术

技术编号:38508740 阅读:29 留言:0更新日期:2023-08-19 16:54
本发明专利技术涉及ARM架构PON网关手动输出用户层程序调用栈的实现方法,属于电数字数据处理技术领域,包括以下步骤:当硬件检测到一个中断事件时,向处理器发送一个中断请求信号,处理器停止当前正在执行的指令,并跳转到中断处理程序;在ARM处理器中,中断处理程序的入口地址存储在中断向量表中;其中,当ARM处理器接收到一个中断请求时,保存当前程序状态;使用kill命令向进程发送信号,内核根据信号类型和目标进程的状态来决定如何处理这个信号等。介绍了一个不用修改任何用户层程序代码,即可输出任一用户层程序用户态调用栈的方法,它可以帮助光猫开发、维护人员快速可定位进程卡死类问题,并进行相应的调整和修复,特别是概率性出现的问题。出现的问题。出现的问题。

【技术实现步骤摘要】
ARM架构PON网关手动输出用户层程序调用栈的实现方法


[0001]本专利技术属于电数字数据处理
,具体涉及ARM架构PON网关手动输出用户层程序调用栈的实现方法。

技术介绍

[0002]在PON光猫产品开发或现网维护过程中,经常会遇到进程跑飞的现象(即预期以外的情况),需要查看进程当前正在执行到哪里。然而,Linux只能通过sysrq

trigger查看进程内核态栈情况,而没有手段可以查看用户层进程的栈情况。
[0003]参照APCS(ARM Procedure Call Standard)规范,可以回溯出用户层程序的调用栈,但是网上找的资料都是在用户层实现的,这种需要提前修改对应用户层进程的源代码,需要在进程内部实现,不能做到一次修改对所有进程生效。
[0004]因此,现阶段需设计ARM架构PON网关手动输出用户层程序调用栈的实现方法,来解决以上问题。

技术实现思路

[0005]本专利技术目的在于提供ARM架构PON网关手动输出用户层程序调用栈的实现方法,用于解决上述现有技术中存在的本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.ARM架构PON网关手动输出用户层程序调用栈的实现方法,其特征在于,包括以下步骤:S1、当硬件检测到一个中断事件时,向处理器发送一个中断请求信号,处理器停止当前正在执行的指令,并跳转到中断处理程序;在ARM处理器中,中断处理程序的入口地址存储在中断向量表中;其中,当ARM处理器接收到一个中断请求时,保存当前程序状态,即CPSR、SPSR、R0~R12、LR、PC;S2、使用kill命令向进程发送信号,内核根据信号类型和目标进程的状态来决定如何处理这个信号;内核信号处理函数收到前面中断处理程序保存的进程现场信息;S3、在Linux内核的信号处理函数中,读取并记录中断保存的寄存器信息,同时根据读取到的sp寄存器的信息,获取进程当前用户态栈信息,用户层地址通过copy_from_user()拷贝到内核空间;S4、参照APCS规范,在函数的入口处,会首先将fp、sp、lr寄存器存入栈内,fp和sp寄存器分别指向函数栈的栈底和栈顶,lr则指向返回地址;S5、通过current

>mm

>mmap遍历进程的地址空间链表vm_area_struct,找到第3步中获取到的每步调用栈地址所在的vm_area_struct区间,然后...

【专利技术属性】
技术研发人员:查云熊猛刘邵海
申请(专利权)人:四川天邑康和通信股份有限公司
类型:发明
国别省市:

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

1