【技术实现步骤摘要】
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区间,然后...
【专利技术属性】
技术研发人员:查云,熊猛,刘邵海,
申请(专利权)人:四川天邑康和通信股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。