我想使用gcc进行堆栈展开。我找不到一个示例代码,告诉我如何执行此操作。
我尝试按照from this site的说明操作,但我意识到我的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
任何人都可以给我一个示例代码的链接来使用这个库吗?
答案 0 :(得分:0)
您尝试使用的示例是“libunwind”,但您的标题属于“libcorkscrew”。 如果你需要一个关于如何使用“你的展开”库的好例子你可以看看Android开源项目,他们实现了CallStack类,它实现了不同架构所需的所有功能。 正是因为你的情况,我建议你看一下文件:
YOUR_PROJECT_FOLDER /系统/核心/ libcorkscrew / backtrace.c
在该文件中,例如,函数“unwind_backtrace”使用libcorkscrew库中的“_Unwind_Backtrace”。使用该文件,您可以轻松调整您的示例。