[笔记分享] [Exception] 内核空间异常之Call Stack解析

本文介绍了如何分析内核空间的异常,特别是Call Stack的解析。通过定位异常函数、手动分析Call Stack以及处理信息不全的情况,阐述了在没有gdb或vmlinux时的解决策略。文章提供了利用反汇编和寄存器信息追溯函数调用链的方法,并讨论了遇到call stack不全时的挑战。
摘要由CSDN通过智能技术生成

1.1 介绍

这一章我们主要对如何分析oops做些描述,以及说下目前我知道的方法。
当然,这里以以下例子来描述。

这里写图片描述


1.2 定位某一行

首先要找到发生exception的函数,虽然bug并不一定是这个函数引起的,而是经过函数一级级传下来造成。但总要知道出错的最终点吧.

这里写图片描述

Call flow为 ret_fast_syscall -> vfs_read -> syfs_read -> sysfs_read_file -> kobj_attr_show ->lcd_display_show, 可见, 是lcd_display_show引起exception处。

一般比较简单的bug在函数中是马上可以找到, 比如我这里p的地址受保护, 内核只能访问0xc0000000以上的address。

那么当函数code较多的时候,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值