栈回溯与异常处理
文章平均质量分 96
ashimida@
这个作者很懒,什么都没留下…
展开
-
C++异常处理源码与安全性分析
C++异常处理需要DWARF的支持,其业界实际标准是 IA-64 C++ABI[1],本文主要描述整个异常处理的流程以及在libgcc中的实现.关于基于DWARF的栈回溯可参考 [2], 关于C++异常处理其他分析可参考[3-8]。一、异常处理代码举例 先以一个简单的C++程序为例:1 #include <stdio.h>2 #include <stdlib.h>34 class x {5 public:6 x(voi...原创 2021-12-10 21:56:22 · 4623 阅读 · 3 评论 -
AARCH64平台的栈回溯
一、术语解释:1.栈顶/栈底[1]: 栈中最后一个push,第一个被pop的位置是栈顶;栈中最后一个被pop,且pop后当前栈为空的位置是栈底;2.Current Function Frame Address[2]: 当前函数栈帧,在aarch64中是当前函数执行完prologue后的栈顶地址, 其可以通过__builtin_frame_address(0)函数获取.3.Canonical Frame Address(CFA)[3]:标准/规范栈帧地址,在aarch64中是当前...原创 2021-12-08 23:02:17 · 3535 阅读 · 1 评论