给予eip时访问ebp

1 c unix

我正在尝试开发运行时堆栈跟踪器.我有一个函数,只要程序被跟踪segfaults返回EIP地址.我怎样才能回到当前函数的ebp(正在观察的程序崩溃的那个),以便我可以开始跟踪?

R..*_*R.. 5

无法将指令指针转换为堆栈帧指针.可以使用不同的堆栈地址多次(甚至递归地)调用相同的函数; 这就是拥有调用堆栈的重点.如果您有崩溃转储文件(核心文件等),它应该包含所有寄存器的转储.如果你想要寄存器值,你必须从这里读取它们.