当我尝试构建libcxx/libcxxabi/libunwind时,我意识到我实际上并不了解它们所扮演的角色。
我检查了libcxxabi spci,发现它定义了在C++异常中使用的接口。但是我找不到任何关于libunwind的文档,我在谷歌找到的一个博客(New libunwind implementation in libc++abi)上说libunwind是libcxxabi的实现。
那么,libunwind真的是这样的吗,在libcxxabi中实现了ABI,如果是这样,为什么我们会有libcxxabi
发布于 2018-05-25 19:33:13
我自己构建了libunwind,并使用nm检查了libunwind中的符号,得到了以下结果:
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只实现了unwind函数,没有实现其他功能。
https://stackoverflow.com/questions/50527413
复制相似问题