[Mac OS X] 内核、驱动调试 - Kernel Debug Kit---kernel panic 调试&分析

苹果官方文档:Technical Note TN2063: Understanding and Debugging Kernel Panics

阅读上述文档,就是可以调试kerne panic (也就是Mac 上的死机),找到死机是死在内核空间的哪一个点上,死在哪一行代码上。当然,如果你是Mac内核or驱动开发人员,这个或许是必须掌握的技能。



什么是Kernle Panic?

Kernel Panic 指的是被系统内核检测到的、不可恢复的系统错误。最常见的就是对内存进行非法读写操作,还有一大堆在在mach_kernel、系统自带驱动里面捕获到的异常现象(这个在Mac OS X中系统驱动的开源代码中有体现,在代码上体现出来的就是在检测到异常的分支if else语句中调用panic()函数)。

(内核空间异常就会产生kernel panic,应用程序异常就会crash掉。其实都是一样的,就是异常挂了...)


调试Kernel Panic的基本步骤:

1.查看系统自动生成的Kernel Panic Log,查看函数调用堆栈,判断是否跟你所开发的驱动相关。

发生kernel panic之后,在重启之后会自动弹出个窗口,里面点击一下Report、Detail,里面的就是kernel panic log了。另外,kernel panic log,在Console

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ARM下出现"Kernel panic - not syncing: Attempted to kill init!"错误通常是由于内核初始化进程(init进程)异常终止引起的。这个错误可能有以下几个可能的原因: 1. 内核配置问题:检查内核配置是否正确,特别是init进程的相关配置。确保正确地编译和安装了init程序,并将其正确配置为内核启动的第一个进程。如果内核配置错误或未正确加载init进程,可能会导致这个错误。 2. 文件系统问题:如果根文件系统无法正确挂载或损坏,也可能导致这个错误。检查文件系统是否完整且可以正常访问。尝试重新挂载文件系统,或者使用备份的文件系统来排除文件系统问题。 3. 设备驱动问题:某些设备驱动程序可能会导致init进程异常终止,从而引发这个错误。尝试禁用或更新相关设备驱动程序,看看是否可以解决问题。 4. 引导加载程序问题:检查引导加载程序的配置和设置,确保正确加载内核和init程序。如果引导加载程序配置不正确或存在问题,也可能导致这个错误。 5. 硬件故障:在一些情况下,硬件故障(如内存故障)也可能导致这个错误。检查硬件是否正常工作,并排除硬件故障的可能性。 总之,解决这个错误需要仔细排查内核配置、文件系统、设备驱动、引导加载程序和硬件等方面的问题。根据具体情况逐一排除可能的原因,并进行相应的修复和调试

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值