草庐IT

c++ - Windbg:ChildEBP和RetAddr的含义

在WinDbg中,k或kb命令展开堆栈并生成堆栈跟踪。输出看起来像这样-ChildEBPRetAddrArgstoChild0021b2f0559fdbf204b885a002a300005a675a790021b3dc559fc3b802a3d0b80021b4c000000000据我所知,EBP是指向当前栈帧起始地址的基指针。RetAddr是“返回地址”,一旦当前函数返回,处理将在此处继续。但是,据我所知,函数框架被压入堆栈。那么,为什么RetAddr的值与ChildEBP的值明显不同?它们应该是相似的,因为我们在同一个堆栈上工作。我错过了什么吗? 最佳