对于在现场运行的嵌入式ARM系统,需要在发生用户空间应用程序崩溃时检索相关的调试信息。这些信息将存储在非易失性存储器中,以便以后可以进行检索。所有此类信息必须在运行时存储,并且由于内存消耗问题而无法使用第三方应用程序。
到目前为止,我想到了以下几点:
您认为还有哪些其他信息可以识别导致问题并且之后能够进行快速调试?
谢谢!
答案 0 :(得分:0)
通常,为了能够理解问题,您需要每个寄存器(从r0到r15),CPSR和堆栈顶部(以便能够确定崩溃前发生的事情)。还请注意,当程序因任何无效操作而中断(跳转到无效地址,...)时,处理器进入异常模式,而您需要在进程的上下文中转储寄存器和堆栈。 / p>
为了能够使用这些数据进行调查,您还必须保留构建中的ELF文件(如果可能,包含调试信息),以便能够解释寄存器和堆栈的内容。
最后,您保留的信息越多,调试就越容易,但是在发生故障时保留程序使用的每个内存部分可能会很昂贵(事实上,我从来没有完成了这个)。
在尸检分析中,您将面临一些限制: