我的堆栈跟踪的理解本质上是基于什么是完全相同的基指针和堆栈指针? 做他们观点是什么? 。
一个程序我一直在帮助开发多年吐出堆栈转储当它崩溃了,我已经习惯了与C ++编译器生成一个.map文件评估这些堆栈跟踪,对应。 许多次,我已经成功地能走栈和调试问题。
然而,有时栈跟踪具有NULL EBP(帧)的指针。 下面是从这样的样品堆栈转储的相关片段:
Initial EBP pointer value: 04d8fab0
{at address 04d8fab0: 00000000}
正如你所看到的,EBP帧指针值为NULL。 因此,我不能走栈。
这是一个损坏的堆栈的迹象,或有另一种可能的解释?