|
|
-*-Mode: outline-*- |
|
|
|
|
|
* News for v1.1: |
|
|
|
|
|
** coredump unwind support |
|
|
** New arch: SuperH |
|
|
** Improved support for PowerPC, ARM |
|
|
** Lots of cleanups, perf tweaks |
|
|
** pkg-config support |
|
|
|
|
|
* News for v1.0: |
|
|
|
|
|
** Fast unwind (rbp, rsp, rip only) on x86_64 with a fallback to |
|
|
slow code path (Lassi Tuura) |
|
|
** Improved local and remote unwinding on ARM (Ken Werner) |
|
|
** Testing, stability and many fixes on x86 (Paul Pluzhnikov) |
|
|
** FreeBSD port and clean separation of OS specific bits |
|
|
(Konstantin Belousov) |
|
|
** Thanks for all the bug reports, contributions and testing! |
|
|
|
|
|
* News for v0.99: |
|
|
|
|
|
** Greatly improved x86-64 support thanks to Arun Sharma. |
|
|
** Support for PPC64 added by Jose Flavio Aguilar Paulino. |
|
|
|
|
|
* News for v0.98.6: |
|
|
|
|
|
** Fix address-leak triggered by invalid byte-order. Fixed by Andreas Schwab. |
|
|
** On ia64, get_static_proc_name() no longer uses a weak reference to |
|
|
_Uelf64_get_proc_name(), since that was causing problems with archive |
|
|
libraries and no longer served any apparent purpose. Fixed by |
|
|
Curt Wohlgemuth. |
|
|
|
|
|
* News for v0.98.5: |
|
|
|
|
|
** Fix a typo in the man-page of unw_create_addr_space(). |
|
|
** Fix an off-by-1 bug in the handling of the dynamic ALIAS directive |
|
|
for ia64. Reported by Todd L. Miller. |
|
|
** Fix a bug in libunwind-ptrace which could cause crash due to extraneous |
|
|
munmap() calls. |
|
|
|
|
|
* News for v0.98.4: |
|
|
|
|
|
** Fix a typo in _ReadSLEB.c which caused hangs when throwing exceptions |
|
|
from Intel ICC-compiled programs. Reported by Tommy Hoffner. |
|
|
|
|
|
* News for v0.98.3: |
|
|
|
|
|
** Make it possible to link against libunwind-ia64.a only (i.e., without |
|
|
requiring libunwind.a as well). This keeps apps which need only |
|
|
remote unwinding cleaner, since they logically have no dependency |
|
|
on libunwind.a. |
|
|
** Dont link against libatomic_ops for now. Due to a packaging bug on |
|
|
Debian, linking against this library causes libunwind.so to get |
|
|
a dependency on libatomic_ops.so, which is not at all what we want. |
|
|
Fortunately, we don't have to link against that library on x86 or |
|
|
ia64 since the library is strictly needed only for platforms with |
|
|
poor atomic operation support. Once the libatomic_ops package is fixed, |
|
|
we can re-enable linking against libatomic_ops. |
|
|
|
|
|
* News for v0.98.2: |
|
|
|
|
|
** Fixed bug which caused _UPT_get_dyn_info_list_addr() to sometimes fail |
|
|
needlessly. Found by Todd L. Miller. |
|
|
|
|
|
** When using GCC to build libunwind on ia64, libunwind.so had an |
|
|
unresolved reference to __divdi3. This is undesirable since it |
|
|
creates an implicit dependency on libgcc. This problem has been |
|
|
fixed in the 0.98.2 release by explicitly linking against libgcc.a |
|
|
when building libunwind. |
|
|
|
|
|
* News for v0.98.1: |
|
|
|
|
|
** Fixed a bug which caused "make install" to install libunwind-common.h.in |
|
|
instead of libunwind-common.h. |
|
|
** Fixed a bug in the ia64 {sig,}longjmp() which showed on |
|
|
SuSE Linux 9 because it's using a newer compiler & the EPC-based system |
|
|
call stubs. |
|
|
** Fixed incorrect offsets in tests/ia64-test-nat-asm.S. |
|
|
Warning: you'll need a GNU assembler dated later than 21-Sep-2004 to |
|
|
get this file translated correctly. With an old assembler, "make check" |
|
|
will get lots of failures when running Gia64-test-nat or Lia64-test-nat! |
|
|
** Convert tests/bt into a full-blown test-case. It's designed to |
|
|
trigger a (rarely-encountered) bug in the GNU assembler on ia64. |
|
|
The assembler has been fixed and once the libraries (libc etc) |
|
|
have been rebuilt, this test will pass. |
|
|
** Added test-case tests/run-ptrace-misc which, on ia64, triggers a bug in |
|
|
current GCC (including v3.4.2) which causes bad unwind info. |
|
|
|
|
|
* News for v0.98: |
|
|
|
|
|
** Update libunwind to be compliant with the updated/expanded |
|
|
ia64 unwind specificiation by HJ Lu [1]. This is needed for |
|
|
GCC 3.4 compatibility. |
|
|
|
|
|
[1] http://www.kernel.org/pub/linux/devel/gcc/unwind/ |
|
|
|
|
|
** Initial support for x86-64 has been added courtesy of Max Asbock. |
|
|
Along with this came a bunch of DWARF2 unwinder fixes. |
|
|
|
|
|
** A new rountine unw_strerror() has been added courtesy of |
|
|
Thomas Hallgren. |
|
|
|
|
|
** Including <libunwind.h> now defines 4 macros that can be used |
|
|
to determine the version number of libunwind. Specifically, |
|
|
UNW_VERSION_MAJOR, UNW_VERSION_MINOR, UNW_VERSION, and |
|
|
UNW_VERSION_CODE are defined by the header now. |
|
|
|
|
|
** Bug fixes |
|
|
*** Fix a memory-leak in _UPT_get_dyn_info_list_addr() courtesy of Ed Connell. |
|
|
*** Fix a crash in libunwind-ptrace courtesy of Mark Young. |
|
|
*** Fix a bug in ia64-version of unw_init_remote() which prevented |
|
|
it from working correctly for the local address space. Reported by |
|
|
Troy Heber. |
|
|
*** Many other small and not so small fixes. |
|
|
|
|
|
* News for v0.97: |
|
|
|
|
|
** unw_get_proc_name() may now be called from signal-handler. |
|
|
|
|
|
** The ptrace-helper routines are now declared in libunwind-ptrace.h. |
|
|
Applications which use ptrace-based unwinding should include |
|
|
<libunwind-ptrace.h> to get the _UPT_*() routines declared. |
|
|
|
|
|
** libunwind has been split into a "local-only" and a "generic" versions. |
|
|
The former is optimized for local unwinding (within a process) and |
|
|
is called libunwind.so (shared version) or libunwind.a (archive |
|
|
version). The generic version is not limited to unwinding within a |
|
|
process and is called libunwind-generic.so (shared version) |
|
|
libunwind-generic.a (archive version). Similarly, the ptrace() |
|
|
support has been separated out into a convenience library called |
|
|
libunwind-ptrace.a. For the most part, backwards-compatibility |
|
|
is retained. However, when building an application which uses |
|
|
libunwind, it may be necessary to change the linker command-line |
|
|
as shown in the table below: |
|
|
|
|
|
Application which does: Before v0.97: With v0.97: |
|
|
----------------------- ------------- ----------- |
|
|
local unwinding only: -lunwind -lunwind |
|
|
remote unwinding: -lunwind -lunwind-generic |
|
|
cross unwinding: -lunwind-PLAT -lunwind-PLAT |
|
|
ptrace-based unwinding: -lunwind -lunwind-ptrace -lunwind-generic |
|
|
|
|
|
The motivation for this splitting is to keep libunwind.so as minimal |
|
|
as possible. This library will eventually be loaded by most (if not |
|
|
all) executables and hence it is important to ensure that it can |
|
|
be loaded as quickly as possible. |
|
|
|
|
|
** unw_getcontext() tuned on IA-64. |
|
|
|
|
|
The unw_getcontext() routine used to be provided by (GNU) libc |
|
|
(getcontext()). This caused unnecessary overhead (e.g., an |
|
|
unnecessary system-call to sigprocmask()). The new |
|
|
unw_getcontext() only does the work really needed for libunwind and |
|
|
hence performs much better. However, this change implies that |
|
|
programs linked against libunwind v0.97 won't be |
|
|
backwards-compatible with earlier versions (there would be an |
|
|
unresolved symbol for _Uia64_getcontext()). |
|
|
|
|
|
** Fix NaT-bit handling on IA-64. |
|
|
|
|
|
New test-cases have been added to test the handling of the NaT bit |
|
|
(and floating-point NaT values) and all discovered/known bugs have |
|
|
been fixed. |
|
|
|
|
|
** Initial DWARF-based unwinder for x86. |
|
|
|
|
|
There is a beginning for a DWARF-based unwinder for x86. Work for |
|
|
x86-64-support based on this DWARF unwinder is currently underway |
|
|
at IBM and it is expected that this support will be merged into the |
|
|
official tree soon. |
|
|
|
|
|
|
|
|
* News for v0.96: |
|
|
|
|
|
** _Unwind_*() routines defined by the C++ ABI are now included in |
|
|
libunwind. |
|
|
|
|
|
|
|
|
* News for v0.95: |
|
|
|
|
|
** Bigger, better, faster, or so the theory goes. |
|
|
|
|
|
|
|
|
* News for v0.93: |
|
|
|
|
|
** More bug-fixes & improved HP-UX support. |
|
|
|
|
|
|
|
|
* News for v0.92: |
|
|
|
|
|
** Bug-fix release. IA-64 unwinder can now be built with Intel compiler (ECC). |
|
|
|
|
|
|
|
|
* News for v0.91: |
|
|
|
|
|
** Lots of documentation updates |
|
|
** Some portability fixes. |
|
|
|
|
|
|
|
|
* News for v0.9: |
|
|
|
|
|
** The libunwind API is mostly feature-complete at this point (hence the |
|
|
version jump from v0.2 to v0.9). |
|
|
|
|
|
|
|
|
* News for v0.2: |
|
|
|
|
|
** Automated configuration/build with autoconf and automake. |
|
|
** Added support for building libunwind as a shared library. |
|
|
** Added support for remote unwinding. |
|
|
** Added support for cross-building. |
|
|
** Added two new routines to the API: |
|
|
- unw_is_fpreg() |
|
|
- unw_get_save_loc() |
|
|
** Added multi-architecture supports (lets a single application use |
|
|
the unwind libraries for multiple target architectures; this is useful, |
|
|
e.g., useful for building a debugger that can support multiple targets |
|
|
such as x86, ia64, etc.) |
|
|
|
|
|
|
|
|
* News for v0.1: |
|
|
|
|
|
** Added support for exception handling. |
|
|
|
|
|
|
|
|
* News for v0.0: |
|
|
|
|
|
** It's a brand new package.
|
|
|
|