栈回溯

 

如图,每个函数的入口都是类似汇编,1. push %ebp  2.mov %esp,%ebp

在栈回溯时,根据此时ebp寄存器中的值,即1处的地址,1处的地址里,存的是上一个函数调用的ebp,即2处的地址,2处地址里,存的是更上层,即ebp寄存器中,存放的是每个函数调用栈的栈底。

通过当前ebp寄存器中的值,找到当前函数调用的 栈底减push指令的位置,在这个位置中,存放的是上一个函数调用的ebp,再通过这个ebp,找到上一个函数调用的 栈底减push指令的位置。

相关文章:

  • 2022-12-23
  • 2021-06-29
  • 2021-09-08
  • 2021-08-15
  • 2021-11-23
猜你喜欢
  • 2021-06-23
  • 2022-12-23
  • 2021-11-19
  • 2022-12-23
  • 2021-07-29
  • 2022-01-17
相关资源
相似解决方案