mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2024-12-23 03:53:43 +01:00
Fork of the libunwind official github repo — http://www.nongnu.org/libunwind/
9fea3da388
2005/05/03 02:08:34-07:00 hp.com!davidm (tests/Gtest-concurrent): Fail gracefully if we're unable to create the desired number of threads. Note: unless strict accounting is enabled (/proc/sys/vm/overcommit_memory == 2), the program may fail with a SIGSEGV if it runs out of (stack) memory. 2005/04/07 19:22:33-07:00 hp.com!davidm Make libunwind more friendly to GCC v4. 2005/04/07 19:20:22-07:00 hp.com!davidm ia64: Fix two typos in Gscript.c which showed when compiling without atomic-ops support. 2005/04/07 12:19:38-07:00 hp.com!davidm ia64: cache proc-info even for procedures which are never stepped over This was an oversight that caused exception-handling to run a bit slower than possible. Specifically, the last procedure in an exception-handling chain never got cached because it has only it's proc-info inspected (to find the personality routine); the frame was never stepped over (i.e., no script was ever built) and the info never got into the cache. This patch fixes the problem. 2005/03/31 14:45:30-08:00 hp.com!davidm (tests/Gtest-exc): Make it buildable with the Intel compiler. 2005/03/31 13:29:44-08:00 hp.com!davidm Merge wailua.hpl.hp.com:/home/davidm/src/unwind/libunwind-v0.98 into wailua.hpl.hp.com:/home/davidm/src/unwind/libunwind 2005/03/07 10:13:14-08:00 hp.com!davidm Merge bk://unwind@bkbits.net/libunwind into wailua.hpl.hp.com:/home/davidm/src/unwind/libunwind 2005/03/07 10:08:26-08:00 hp.com!davidm x86-64: Make it work better. 2005/03/07 10:02:17-08:00 hp.com!davidm Fix a couple of missed NELEMS -> ARRAY_SIZE renames. 2005/03/07 10:00:19-08:00 hp.com!davidm Fix a warning that shows with GCC v3.4. 2005/02/25 15:47:17-08:00 mostang.com!davidm Fix forgotten ALWAYS_INLINE adjustment. 2005/02/24 23:39:35-08:00 hp.com!davidm Fix missing NELEMS -> ARRAY_SIZE rename. 2005/02/24 23:32:42-08:00 mostang.com!davidm Merge bk://unwind@bkbits.net/libunwind into kangaroo.mostang.com:/home/davidm/src/unwind/libunwind 2005/02/24 23:28:02-08:00 hp.com!davidm Fix merge-conflict. 2005/02/23 14:40:45-08:00 mostang.com!davidm Abstract locking primitives some more to enable use of libunwind inside the Linux kernel. 2005/02/23 13:10:06-08:00 mostang.com!davidm ia64: Change "ia64_rse" prefix to "rse" in order to stay clear of Linux kernel conflict. 2005/02/23 12:55:46-08:00 mostang.com!davidm Fix a few missed ALWAYS_INLINE adjustments. 2005/02/20 21:42:55-08:00 mostang.com!davidm Make it easier to use libunwind inside Linux-kernel: rename NELEMS to ARRAY_SIZE and make ALWAYS_INLINE include the "inline" keyword. 2005/02/18 22:20:58-08:00 hp.com!davidm Merge wailua.hpl.hp.com:/home/davidm/src/unwind/libunwind-v0.98 into wailua.hpl.hp.com:/home/davidm/src/unwind/libunwind 2004/12/15 15:40:09-08:00 hp.com!davidm ia64: Make ia64 build again. 2004/12/15 15:38:34-08:00 hp.com!davidm Fix library dependencies so it's possible to do a successful "make check" even when the GCC-based libunwind.so is installed in /lib. 2004/12/15 15:36:37-08:00 hp.com!davidm Put separate copies of the ELF-reading code into each library that needs it. Anything else if fragile or inefficient. 2004/12/08 17:27:12-08:00 hp.com!davidm Merge bk://unwind@bkbits.net/libunwind into wailua.hpl.hp.com:/home/davidm/src/unwind/libunwind 2004/12/06 10:40:50-08:00 mostang.com!davidm x86: Make longjmp() work. Unfortunately, siglongjmp() doesn't work yet since there aren't enough exception-handling argument registers available to make that work easily. Will need to come up with something clever to make that work. Perhaps we can always use sigreturn() to atomically do a setcontext() with signal-mask restoration. 2004/12/04 17:03:37-08:00 mostang.com!davidm Regenerate src/Makefile.in. 2004/12/04 17:00:06-08:00 hp.com!davidm hppa: Implement a useful setcontext() (but call it _Uhppa_setcontext()) and use it to make Gtest-exc work. 2004/12/02 23:56:58-08:00 hp.com!davidm Fix merge conflict. 2004/12/02 23:51:02-08:00 hp.com!davidm test-ptrace: Improve label-printing and allow nesting up to 64 deep. 2004/12/02 18:37:48-08:00 hp.com!davidm hppa: Fix it enough so it actually starts to be useful. 2004/12/02 00:40:46-08:00 mostang.com!davidm hppa: Initial support for (32-bit) PA-RISC Linux. It should be good enough to get tests/Gtest-bt working. 2004/11/30 22:53:53-08:00 mostang.com!davidm Regenerate "configure". 2004/11/30 22:44:48-08:00 mostang.com!davidm x86-64: Fix it up some more. Make check has no unexplained failures anymore (see README for details). 2004/11/30 21:47:49-08:00 mostang.com!davidm x86: Fix comment-typo. 2004/11/23 16:59:58-08:00 mostang.com!davidm x86/-64: First cut at supporting libunwind-ptrace for x86 and x86-64. 2004/11/23 12:49:55-08:00 mostang.com!davidm x86: Fill in save-locations by hand if DWARF-info is unavailable for a signal-frame. This should help when running on old Linux kernels which do not provide the vDSO. 2004/11/23 18:01:10-08:00 mostang.com!davidm x86-64: Provide a minimal unw_resume() implementation and fix an off-by-one error that was present in x86 and ia64 forever (at least on ia64 the error was harmless, but it's still a bug...). 2004/11/23 16:17:37-08:00 mostang.com!davidm x86-64: Fix unwinding across signal-frames on platforms that fail to provide unwind-info for the signal trampoline. This makes Gtest-bt work on SuSE LES 9. 2004/11/22 10:22:37-08:00 mostang.com!davidm x86-64: Make it build again. 2004/11/17 02:43:40-08:00 mostang.com!davidm Fairly major overhaul of DWARF2 unwinder. The major change is that the auxiliary DWARF-info is maintained in a separate structure (dwarf_cie_info, I may rename this to dwarf_aux_info) rather than in an unw_dyn_info_t. The latter seemed promising at the beginning, but it's become clear that it was a bad idea so it's time to remove it. 2004/11/17 02:06:25-08:00 mostang.com!davidm tests/Gtest-resume-sig: Clean it up some more and make it more robust. 2004/11/16 15:14:56-08:00 hp.com!davidm Merge bk://unwind@bkbits.net/libunwind into wailua.hpl.hp.com:/home/davidm/src/unwind/libunwind 2004/11/16 14:09:02-08:00 hp.com!davidm Manual merge with v0.98.3. 2004/11/05 00:14:10-08:00 hp.com!davidm Fix merge conflict with v0.98.2. 2004/11/03 13:57:00-08:00 hp.com!davidm Manual merge with v0.98.2. 2004/11/03 11:45:24-08:00 hp.com!davidm Merge wailua.hpl.hp.com:/home/davidm/src/unwind/libunwind-v0.98 into wailua.hpl.hp.com:/home/davidm/src/unwind/libunwind 2004/10/25 17:43:58+02:00 homeip.net!davidm x86: Add Debug statement for return-value. Define DWARF_IS_REG_LOC for the local-only case. 2004/10/25 17:38:51+02:00 homeip.net!davidm Fix typo: DW_CFA_CFA_expression -> DW_CFA_expression. 2004/10/25 07:52:30-07:00 hp.com!davidm ia64: Add Debug() statement to print unw_step() return value at debug level 2. 2004/10/25 05:21:53-07:00 hp.com!davidm Improve Debug() support for ia64 a bit and make Debug (N, ...) get printed when UNW_DEBUG_LEVEL==N. 2004/10/21 16:06:28+02:00 homeip.net!davidm Fix _UPT_get_dyn_info_list_addr() so it doesn't fail just because a /proc/PID/maps file contains a mapping of something other than a regular file. Reported and fix proposed by Todd L. Miller. 2004/10/21 11:15:44+02:00 homeip.net!davidm Merge bk://unwind@bkbits.net/libunwind into mosberger.homeip.net:/home/davidm/src/unwind/libunwind 2004/10/21 11:15:12+02:00 homeip.net!davidm dwarf: Fix some rather serious bugs in the DWARF expression evaluator. 2004/10/19 23:24:57-07:00 mostang.com!davidm Fix some minor typos. 2004/10/19 23:15:02-07:00 mostang.com!davidm dwarf: Fix Gstep() so it doesn't fail just because the IP didn't change. This makes tests/{G,L}test-exc work on x86. 2004/10/19 23:11:08-07:00 mostang.com!davidm tests/Gtest-exc.c: Fix test-case so it works as was intended. 2004/10/19 23:06:24-07:00 mostang.com!davidm Use -fexceptions when compiling libunwind with GCC. Switch version to 0.99-alpha. BKrev: 427740adF-X3amNLHAfKa4B063DYxQ |
||
---|---|---|
aux | ||
BitKeeper/etc | ||
config | ||
doc | ||
include | ||
scripts | ||
src | ||
tests | ||
acinclude.m4 | ||
aclocal.m4 | ||
AUTHORS | ||
ChangeLog | ||
ChangeSet | ||
configure | ||
configure.in | ||
COPYING | ||
INSTALL | ||
Makefile.am | ||
Makefile.in | ||
NEWS | ||
README | ||
TODO |
-*- mode: Outline -*- This is version 0.97 of the unwind library. At the moment, only the IA-64 Linux (IPF Linux) platform is fully supported. Some basic support for x86 and HP-UX/IPF exists also. However, the x86 support is based mostly on the frame-chain and does not reliably use unwind information yet, so its utility is limited. Similarly, the HP-UX/IPF support is incomplete, though it is sufficient to do a basic backtrace. unw_resume() is not supported, however. * Important GCC v3.4.[012] Caveat GCC v3.4.[012] break C++ ABI compatibility and because of that, libunwind cannot easily be used as the unwinder. The GCC developers are aware of the problem [1] and the the problem has been fixed for GCC v3.4.3. [1] http://gcc.gnu.org/ml/gcc/2004-04/msg00989.html * General Build Instructions In general, this library can be built and installed with the following commands: $ ./configure $ make $ make install prefix=PREFIX where PREFIX is the installation prefix. By default, a prefix of /usr/local is used, such that libunwind.a is installed in /usr/local/lib and unwind.h is installed in /usr/local/include. For testing, you may want to use a prefix of /usr/local instead. * Building with Intel compiler ** Version 8 and later Starting with version 8, the preferred name for the IA-64 Intel compiler is "icc" (same name as on x86). Thus, the configure-line should look like this: $ ./configure CC=icc CFLAGS="-g -O3 -ip" CXX=icc CCAS=gcc CCASFLAGS=-g \ LDFLAGS="-L$PWD/src/.libs" ** Version 7 To build libunwind with the Intel Electron compiler (ECC), it is recommended to run configure like this: $ ./configure CC=ecc CXX=ecc CCAS=gcc CCASFLAGS=-g \ LDFLAGS="-L$PWD/src/.libs" The reason for this is that ECC uses the Intel assembler, which doesn't grok some of the IA-64 assembly code in the "tests" directory. For an ECC-built version of libunwind to work properly, you also need to ensure that /usr/include/asm/fpu.h contains a "long double" member called "__dummy" in the declaration of "struct ia64_fpreg". Without that member, variables of type unw_context_t won't be aligned properly. * Building on HP-UX For the time being, libunwind must be built with GCC on HP-UX. libunwind should be configured and installed on HP-UX like this: $ ./configure CFLAGS="-g -O2 -mlp64" CXXFLAGS="-g -O2 -mlp64" Caveat: Unwinding of 32-bit (ILP32) binaries is not supported at the moment. ** Workaround for older versions of GCC GCC v3.0 and GCC v3.2 ship with a bad version of sys/types.h. The workaround is to issue the following commands before running "configure": $ mkdir $top_dir/include/sys $ cp /usr/include/sys/types.h $top_dir/include/sys GCC v3.3.2 or later have been fixed and do not require this workaround. * Regression Testing After building the library, you can run a set of regression tests with: $ make check ** Expected results on IA-64 Linux Unless you have a very recent C library and compiler installed, it is currently expected to have the following tests fail on IA-64 Linux: Gtest-init (should pass starting with glibc-2.3.x/gcc-3.4) Ltest-init (should pass starting with glibc-2.3.x/gcc-3.4) test-ptrace (should pass starting with glibc-2.3.x/gcc-3.4) run-ia64-test-dyn1 (should pass starting with glibc-2.3.x) This does not mean that libunwind cannot be used with older compilers or C libraries, it just means that for certain corner cases, unwinding will fail. Since they're corner cases, it is not likely for applications to trigger them. Note: If you get lots of errors in Gia64-test-nat and Lia64-test-nat, it's almost certainly a sign of an old assembler. The GNU assembler used to encode previous-stack-pointer-relative offsets incorrectly. This bug was fixed on 21-Sep-2004 so any later assembler will be fine. ** Expected results on x86 Linux The following tests are expected to fail on x86 Linux: test-proc-info (x86 unwinder doesn't use unwind-info yet) Gtest-exc (unw_resume() not implmented yet) Ltest-exc (unw_resume() not implmented yet) test-setjmp (unw_resume() not implmented yet) ** Expected results on HP-UX "make check" is currently unsupported for HP-UX. You can try to run it, but most tests will fail (and some may fail to terminate). The only test programs that are known to work at this time are: tests/bt tests/Gperf-simple tests/test-proc-info tests/test-static-link tests/Gtest-init tests/Ltest-init tests/Gtest-resume-sig tests/Ltest-resume-sig * Performance Testing This distribution includes a few simple performance tests which give some idea of the basic cost of various libunwind operations. After building the library, you can run these tests with the following commands: $ cd tests $ make perf * Contacting the Developers Please direct all questions regarding this library to: libunwind@linux.hpl.hp.com For spam protection, you'll have to subscribe to this list before posting a question. You can do this by sending a mail to libunwind-request@linux.hpl.hp.com with a body of: subscribe libunwind Note: the host that is running this list is behind a firewall, so you'll not be able to use the Web interface to manage your subscription. Send a mail containing "help" to libunwind-request@linux.hpl.hp.com for information on how to manage your subscription via email.