2011-10-22 186 views
1

我想使用gcc做堆棧展開。我找不到一個示例代碼,告訴我如何做到這一點。使用unwind.h展開堆棧。

我試圖按照說明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

http://stackoverflow.com/search?q=c+unwind –

+0

請幫助我。 – dosmin

回答

0

您嘗試使用的示例是「libunwind」,但您的標題屬於「libcorkscrew」。 如果您需要一個關於如何使用「放鬆」庫的好例子,您可以查看Android開源項目,他們實現了CallStack類,它實現了不同架構所需的全部功能。 正是爲你的情況我建議你看一下文件:

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

在該文件中,例如,函數「unwind_backtrace」使用「_Unwind_Backtrace」從libcorkscrew圖書館。使用該文件可以輕鬆調整您的示例。