前言
对于每个C 语言开发者来说中,内存错误(内存泄漏,内存越界,野指针,空指针等)恐怕是再熟悉不过了。这些错误通常严重级别很高,隐藏很深而且会产生随机错误,即便在很多调试工具的帮助下,为了找到重现的路径,也需要花费大量的时间。对于uClinux来说,情况就更糟糕了,那些在x86上能够导致程序退出的错误,在uClinux中大多数情况下并不会退出而只是产生奇怪的运行结果. 我们知道,这类错误尽管可以在编码时尽量减少却无法做到全部根除,那么,在这类错误产生时,有什么办法能够帮助我们迅速定位呢?此时只能借助kernel 了,如果Kernel 在应用程序出错时dump 出相应的函数调用顺序,那也就离解决问题不远了。
全文概要
本文首先介绍了关于ARM寄存器和APCS(ARM Procedure Call Standard),在了解了函数栈帧(stack frame)之后,我们将看到在一个具体的系统中kernel是如何利用stack frame dump出函数调用顺序的.
附件为全文pdf.
|
文件: |
arm_stack_backtrace.pdf |
大小: |
249KB |
下载: |
下载 | |
阅读(8378) | 评论(0) | 转发(1) |