【问题标题】:stack unwinding using unwind.h使用 unwind.h 展开堆栈
【发布时间】:2011-12-13 07:03:07
【问题描述】:

我想使用 gcc 进行堆栈展开。我找不到向我展示如何执行此操作的示例代码。

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

我的unwind.h 类似于http://www.opensource.apple.com/source/gcc/gcc-5482/gcc/unwind.h

谁能给我一个示例代码的链接以使用这个库?

【问题讨论】:

标签: gcc stack trace


【解决方案1】:

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

YOUR_PROJECT_FOLDER/system/core/libcorkscrew/backtrace.c

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

【讨论】:

    猜你喜欢
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 2018-04-01
    • 2011-01-20
    • 1970-01-01
    • 2016-11-03
    相关资源
    最近更新 更多