汇编
文章平均质量分 77
安于当下
这个作者很懒,什么都没留下…
展开
-
栈帧
首先应该明白,栈是从高地址向低地址延伸的。每个函数的每次调用,都有它自己独立的一个栈帧,这个栈帧中维持着所需要的各种信息。寄存器ebp指向当前的栈帧的底部(高地址),寄存器esp指向当前的栈帧的顶部(地址地)。下图为典型的存取器安排,观察栈在其中的位置 入栈操作:push eax; 等价于 esp=esp-4,eax->[esp];如下图出栈操作:pop eax; 等价转载 2014-07-23 08:19:15 · 488 阅读 · 0 评论 -
也谈栈和栈帧
一个码农要是没遇见过coredump,那他就是神仙了。core file(coredump的转储文件)中保存的最重要内容之一,就是函数的call trace。还原这部分内容(栈回溯),并与原代码对应上,尽快找出程序崩溃的位置和原因,是码农们一生的责任。当然,你如果有良好的开发环境和开发习惯,保留了现场环境(core file and lib file等)和unstrip的原程序,那么恭喜,转载 2014-07-23 17:14:57 · 6426 阅读 · 1 评论