赞
踩
苹果官方文档: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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。