加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

Linux内核的栈回溯与妙用

发布时间:2018-11-14 03:19:13 所属栏目:业界 来源:今日头条
导读:1 前言 说起linux内核的栈回溯功能,我想这对每个Linux内核或驱动开发人员来说,太常见了。如下演示的是linux内核崩溃的一个栈回溯打印,有了这个崩溃打印我们能很快定位到在内核哪个函数崩溃,大概在函数什么位置,大大简化了问题排查过程。 网上或多或少

此时fp寄存器保存的数据是C函数栈地址0x1010,原因下文会分析到。当执行C函数指令5,跳转到B函数后,栈指针sp指向地址0x100C(先假设,下文的讲解可以验证),B函数的返回地址也就是C函数的指令6的地址0x00048就会自动保存到CPU的lr寄存器,然后执行B函数指令1, 就会将0x00048存入B函数栈地址0x100C,栈指针sp减一,指向B函数栈地址0X1008。

接着执行B函数的指令2,将fp寄存器中的数据0x1010存入栈指针sp指向的内存地址0x1008,示意图已经标明。接着执行B函数指令3,将此时栈指针sp指向的地址0x1008(就是B函数的第二片内存)存入fp寄存器。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读