[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libunwind] libunwind v0.96 released
From: |
David Mosberger |
Subject: |
[libunwind] libunwind v0.96 released |
Date: |
Thu, 4 Dec 2003 23:18:00 -0800 |
v0.96 of libunwind has just been released. You can get it from:
ftp://ftp.hpl.hp.com/pub/linux-ia64/libunwind-0.96.tar.gz
Relative to v0.95, there are two main changes:
- Support for the exception-handling interface originally defined by
the C++ ABI group has been added. This consists of a new header-file
<unwind.h> and a set of routines:
_Unwind_DeleteException()
_Unwind_ForcedUnwind()
_Unwind_GetGR()
_Unwind_GetIP()
_Unwind_GetLanguageSpecificData()
_Unwind_GetRegionStart()
_Unwind_RaiseException()
_Unwind_Resume()
_Unwind_SetGR()
_Unwind_SetIP()
See http://www.codesourcery.com/cxx-abi/abi-eh.html for details.
If you define _GNU_SOURCE when compiling a program including
<unwind.h>, you'll also get the following additional routines,
which were added by the GCC folks:
_Unwind_Backtrace()
_Unwind_GetBSP()
_Unwind_GetCFA()
_Unwind_GetDataRelBase()
_Unwind_GetTextRelBase()
_Unwind_Resume_or_Rethrow()
_Unwind_FindEnclosingFunction()
See the header file <unwind.h> for some documentation on these.
- A new routine called unw_get_proc_info_by_ip() has been added.
This works exactly like unw_get_proc_info() except that instead of
a valid cursor, you just need a valid instruction pointer.
However, this new routine is slower (and often much slower) than
unw_get_proc_info(), so unless you absolutely have to, it's not
recommended to use it (the reason I had to add it was so that
_Unwind_FindEnclosingFunction() can be implemented).
v0.96 should be fully backwards compatible to v0.95. Furthermore,
thanks to the addition of the _Unwind_*() routines, libunwind can now
be used as plug-in replacements for other unwind libraries, such as
the libunwind.so shipped with the Intel compilers.
Oh, one subtle change: for now, I turned off per-thread caching. The
reason I did this is because the per-thread cache consumes a fairly
large amount of thread-local storage (TLS) --- about 128KB --- even
when per-thread caching is never used. Furthermore, I'm not really
sure per-thread-caching is worth it. If someone has some figures to
prove otherwise, I'd be very interested in seeing them. Anyhow, if
someone feels strongly about per-thread caching, we can try to come up
with a solution that satisfies everyone.
Enjoy,
--david
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [libunwind] libunwind v0.96 released,
David Mosberger <=