2004/11/17 02:43:39-08:00 mostang.com!davidm
(struct callback_data): New structure.
(linear_search): New function.
(callback): Convert to getting auxiliary info passed via a pointer to
a callback_data structure, rather than an unw_dyn_info_t
structure.
Keep track of the maximum load address in max_load_addr.
If an object doesn't have a binary search-table, fall back
on a linear search.
(dwarf_find_proc_info): Fill in callback-data structure before calling
dl_iterate_phdr(). Upon returning, check whether
cb_data.single_fde is set and, if so, return directly, without
searching the DWARF unwind-table.
(dwarf_search_unwind_table): Adjust for renaming of
dwarf_parse_fde() to dwarf_extract_proc_info_from_fde().
If IP doesn't fall into the IP-range of the FDE-entry found
by the search, return UNW_ENOINFO.
(Logical change 1.290)
2004/12/15 15:40:09-08:00 hp.com!davidm
Include "tdep.h" on ia64 (we need the cursor).
(bsp_match): Fix it so it compiles again.
(resume_restore_sigmask): Likewise.
2004/12/06 10:40:49-08:00 mostang.com!davidm
(Logical change 1.290)
2004/11/23 16:59:56-08:00 mostang.com!davidm
(_UPT_access_reg): If the register is out of range, set errno
to EINVAL.
When encountering an error while accessing a register,
print the corresponding error string.
(Logical change 1.290)
a signal-trampoline, assume that it's a PLT stub.
If non-DWARF stepping fails to change IP and CFA, declare
it a bad frame.
2004/11/23 16:59:56-08:00 mostang.com!davidm
(unw_step): Also print IP as part of the function-trace.
2004/11/23 16:17:37-08:00 mostang.com!davidm
(unw_step): When dwarf_step() fails on a signal-frame, fill in all
the known locations because dwarf_step() fails on older
kernels which don't export the kernel vDSO even though every-
thing else may be providing proper DWARF unwind-info.
2004/10/25 17:43:57+02:00 homeip.net!davidm
Add Debug statement for return-value.
(Logical change 1.290)
2004/11/23 12:49:54-08:00 mostang.com!davidm
(unw_step): If dwarf_step() fails on a signal-frame, fill in the
save-locations for everything that gets saved in the
sigcontext structure.
2004/10/25 17:43:57+02:00 homeip.net!davidm
Add Debug statement for return-value.
(Logical change 1.290)
(parse_cie): Adjust for moving DWARF2 extra-info from
unw_dyn_dwarf_fde_info_t to dwarf_cie_info.
Add support for `S' augmentation ("special frames").
(dwarf_extract_proc_info_from_fde): Rename frm dwarf_parse_fde().
Convert to returning data via dwarf_cie_info rather than
unw_dyn-dwarf_fde_info_t. Allow 0-length FDE since those
can be used to indicate the end of the FDE-table. Return
the end of the FDE via *ADDRP. Ignore CIEs (we may pick them
up during linear searches through the FDE-table).
Fill in the unwind-info only if really needed. When needed,
return the info via a dynamically allocated dwarf_cie_info
structure. Add support for `S' augmentation (ABI/tag pairs).
(Logical change 1.290)
(main): Do some silly FP computations. On x86-64, this ensures
that the signal handler invocations will always be called
with the FPU-state saved as well. Without this, the first
signal was invoked without FPU-state, the second with, causing
a spurious failure.
2004/11/17 02:06:25-08:00 mostang.com!davidm
(get_bsp): New function.
(handler): Clean up & check for error returns.
(main): Also fail if we didn't get SIGUSR2.
(Logical change 1.290)
unwind-info, since DWARF expects us to do so (unlikey for ia64,
where we are guaranteed that the (return) IP points to the
correct unwind-info).
2004/11/17 02:43:39-08:00 mostang.com!davidm
(run_cfi_program): Switch over to using dwarf_cie_info instead of
unw_dyn_dwarf_fde_info_t.
(fetch_proc_info): Clear c->pi before filling it in.
(put_unwind_info): If we got non-dynamic unwind-info, free it
via a call to mempool_free().
(parse_fde): Switch over to using dwarf_cie_info instead of
unw_dyn_dwarf_fde_info_t.
(apply_reg_state): Drop accessees to c->cfa_is_sp.
2004/10/25 17:38:51+02:00 homeip.net!davidm
Fix typo: DW_CFA_CFA_expression -> DW_CFA_expression.
2004/10/21 11:15:44+02:00 homeip.net!davidm
Auto merged
2004/10/21 11:15:12+02:00 homeip.net!davidm
(run_cfi_program): Add missing newline in Debug statement.
(apply_reg_state): It was wrong to do a dwarf_get() on the CFA-location
returned by eval_location_expr(). Instead, we must make sure
we're dealing with a memory-location and, if so, just extract
the memory address as the CFA.
Also, update c->cfa only _after_ the other frame-state has
been updated. This seems to be necessary for correct parsing
of the sigtramp unwind info. Not sure yet this is 100% correct,
but it gets us through Gtest-resume-sig.
2004/10/19 23:24:56-07:00 mostang.com!davidm
(run_cfi_program): Fix typos in Debug statements.
(Logical change 1.290)
that can be updated atomically (for Linux kernel compat.).
(unwi_full_mask): Rename from unwi_full_sigmask and change type to
intrmask_t.
(intrmask_t): New type.
(define_lock): New macro.
(lock_init): Likewise.
(lock_acquire): Likewise.
(lock_release): Likewise.
(GET_MEMORY): Likewise.
2005/02/20 21:42:54-08:00 mostang.com!davidm
(ALWAYS_INLINE): Include "inline" keyword for compatibility with
Linux kernel.
(ARRAY_SIZE): Rename from NELEMS for improved Linux-kernel
compatibility.
2004/10/25 05:21:51-07:00 hp.com!davidm
(Debug): Make a debug level of N imply that we're printing when
UNW_DEBUG_LEVEL=N since that's more intuitive.
(Logical change 1.290)
for SuSE LES 9) so use 128KB instead.
(do_backtrace): Also print backtrace obtained via backtrace().
(foo): Remove backtrace() call---now done in do_backtrace().
(Logical change 1.290)
2004/12/04 17:00:04-08:00 hp.com!davidm
Gtest-exc is now working on PA Linux.
2004/12/02 18:37:47-08:00 hp.com!davidm
Update introduction.
Add PARISC Linux "expected results" section.
2004/11/30 22:44:47-08:00 mostang.com!davidm
Updated expected results for x86 and x86-64.
2004/11/17 02:43:39-08:00 mostang.com!davidm
Update x86 Linux test-suite status.
(Logical change 1.290)
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