是libunwind在libcxxabi中执行abi吗?

时间:2018-05-25 10:45:20

标签: llvm libc++ libunwind

当我意识到我并没有真正理解他们扮演什么角色时,我正试图建立libcxx / libcxxabi / libunwind

我检查了libcxxabi spci,发现它定义了C ++异常中使用的API。但我无法找到任何关于libunwind的文档,而谷歌发现的一个博客(New libunwind implementation in libc++abi)表示libunwindlibcxxabi的实现。

那么,libunwind是否真的那样,在libcxxabi中实现ABI,如果是,为什么我们有libcxxabi

1 个答案:

答案 0 :(得分:0)

我自己构建了libunwind并使用libunwind检查了nm中的符号并获得了这些符号:

nm: libunwind.cpp.o: File format not recognized
nm: Unwind-EHABI.cpp.o: File format not recognized
nm: UnwindLevel1.c.o: File format not recognized
nm: UnwindLevel1-gcc-ext.c.o: File format not recognized
nm: Unwind-sjlj.c.o: File format not recognized

UnwindRegistersRestore.S.o:
0000000000000000 T _ZN9libunwind16Registers_x86_646jumptoEv

UnwindRegistersSave.S.o:
0000000000000000 T unw_getcontext

这似乎意味着libunwind只是实现了展开函数,没有别的。