I was trying to build libcxx
/ libcxxabi
/ libunwind
when I realized that I didn't actually understand what role they play.
I checked libcxxabi spci , and found that it defines API used in C++ exception. But I can't find any document about libunwind
, and one blog( New libunwind implementation in libc++abi ) I found by google says that libunwind
is the implementation of libcxxabi
.
So, is libunwind
really like that, implements ABI in libcxxabi
, if so, why we have libcxxabi
?
I built libunwind
myself and checked the symbols in libunwind
by using nm
and got these:
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
That seems to imply that libunwind
just implements the unwind functions, nothing else.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.