使用unwind.h进行堆栈展开

时间:2011-10-22 18:50:25

标签: gcc stack trace

我想使用gcc进行堆栈展开。我找不到一个示例代码,告诉我如何执行此操作。

我尝试按照from this site的说明操作,但我意识到我的gcc使用的unwind.h是不同的。例如,而不是unw_word_t我有_Unwind_Word。我不知道应该使用什么,而不是unw_getcontext()unw_init_local()

我的unwind.hhttp://www.opensource.apple.com/source/gcc/gcc-5482/gcc/unwind.h

类似

任何人都可以给我一个示例代码的链接来使用这个库吗?

1 个答案:

答案 0 :(得分:0)

您尝试使用的示例是“libunwind”,但您的标题属于“libcorkscrew”。 如果你需要一个关于如何使用“你的展开”库的好例子你可以看看Android开源项目,他们实现了CallStack类,它实现了不同架构所需的所有功能。 正是因为你的情况,我建议你看一下文件:

YOUR_PROJECT_FOLDER /系统/核心/ libcorkscrew / backtrace.c

在该文件中,例如,函数“unwind_backtrace”使用libcorkscrew库中的“_Unwind_Backtrace”。使用该文件,您可以轻松调整您的示例。