我想使用 gcc 进行堆栈展开。我找不到向我展示如何执行此操作的示例代码。
我尝试按照此网站的说明进行操作,但我意识到我的 gcc 使用的 unwind.h
是不同的。例如,我没有
unw_word_t
,而是
_Unwind_Word
。我不知道应该用什么来代替
unw_getcontext()
和
unw_init_local()
。我的
unwind.h
类似于http://www.opensource.apple.com/source/gcc/gcc-5482/gcc/unwind.h 任何人都可以给我一个使用该库的示例代码的链接吗?
libunwind
,但您的标头属于
libcorkscrew
。如果您需要有关如何使用“您的展开”库的好示例,您可以查看 Android 开源项目,他们实现了类
CallStack
,它实现了不同架构所需的所有功能。 正是针对您的情况,我建议您查看文件:
YOUR_PROJECT_FOLDER/system/core/libcorkscrew/backtrace.c
例如,在该文件中,函数 unwind_backtrace
使用 libcorkscrew 库中的
_Unwind_Backtrace
。使用该文件,您可以轻松调整您的示例。