1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-12-28 05:53:41 +01:00
Commit graph

1551 commits

Author SHA1 Message Date
Arun Sharma
a2c27a4ab7 Make .debug_frame support optional.
Because these code paths use malloc and stdio, they could
cause deadlocks when we try to unwind stack from inside malloc.
2009-03-16 21:21:58 -07:00
David Mosberger-Tang
638302ed73 Rerun autoreconf. 2008-06-16 14:43:21 -06:00
Arun Sharma
ef29eade44 This patch eliminates one system call per unwind by not using the
getcontext in libc.

Also cleanup the namespace (check-name-space passes on x86_64 now).
Replace uses of offsets.h with ucontext_i.h.
Rename _x86_64_setcontext to _Ux86_64_setcontext.

TBD: Add CFI annotations for get/setcontext.

Signed-off-by: Paul Pluzhnikov <ppluzhnikov@google.com>
Signed-off-by: Arun Sharma <arun.sharma@google.com>
2008-06-16 14:42:16 -06:00
Arun Sharma
649f1fb344 [X86-64] For local unwinding, we have a defence mechanism against
bad/missing unwind information, which could result in libunwind
dereferencing bad pointers. This mechanism is based on msync(2) system
call and significantly reduces the chances of a bad pointer
dereference in libunwind.

The original idea was to turn this mechanism on only when necessary
i.e. libunwind didn't find proper unwind information for a IP.

There are a couple of problems in the current implementation.

* The flag is global and is modified without locking
* The flag isn't reset when starting a new unwind

The attached patch makes ->validate a per-thread setting by moving it
into struct cursor from unw_local_addr_space and resets it to false
when starting a new unwind. As a result, cursor->as_arg points to the
cursor itself instead of the ucontext (for the local case).

This was found to reduce the number of msync() system calls from an
application using libunwind significantly.

Signed-off-by: Paul Pluzhnikov <ppluzhnikov@google.com>
Signed-off-by: Arun Sharma <arun.sharma@google.com>
2008-06-16 14:35:53 -06:00
David Mosberger-Tang
183d28a066 Rebuild autoconf files with autoreconf. 2008-06-16 14:30:38 -06:00
Arun Sharma
8081e82ba1 Make the linking of C++ ABI related code for exceptions optional.
The default is to have it enabled.

Signed-off-by: Arun Sharma <arun.sharma@google.com>
2008-06-16 14:28:36 -06:00
Bruna Moreira
1eddefc371 [ARM] This patch add some missing bits on ARM platform.
* src/arm/unwind_i (arm_lock, arm_local_resume): Define.
 * src/ptrace/_UPT_find_proc_info.c: Handle ARM like X86 etc.
 * tests/flush-cache.S (flush_cache): Add (dummy) ARM-version.
	ARM does need executable stack, even on Linux...

Signed-off-by: Anderson Lizardo <anderson.lizardo@indt.org.br>
Signed-off-by: Bruna Moreira <bruna.moreira@indt.org.br>
2008-04-21 13:43:18 -06:00
Paul Pluzhnikov
bb9d3dc689 [X86-64] Fix the pattern used to match signal frames.
The current pattern is too restrictive and doesn't work well on
modern glibcs.

Signed-off-by: Paul Pluzhnikov <ppluzhnikov@google.com>
Signed-off-by: Arun Sharma <arun.sharma@google.com>
2008-04-16 08:05:49 -06:00
Daniel Jacobowitz
3842dac733 Add initial ARM and MIPS support. To support this, also enable the
reading of .debug_frame sections (used in lieu of .eh_frame sections
when they're not available).
2008-02-04 17:16:37 -07:00
Mark Wielaard
5ed2da2a40 [DWARF] Fix error return.
* src/dwarf/Gfde.c (dwarf_extract_proc_info_from_fde):
	  Return -UNW_ENOMEM.
2008-02-04 16:31:34 -07:00
David Mosberger-Tang
f5cb2c52dc 2007-12-14 Mark Wielaard <mwielaard@redhat.com>
* src/mi/Gget_reg.c (unw_get_reg): Use tdep_get_ip() when
   looking for UNW_REG_IP.
2008-01-07 15:43:42 -07:00
David Mosberger-Tang
a8be10e251 [X86] Cleanup XMM handling for x86
* Use explicit types for XMM registers
* Support full width (128 bits) access

Signed-off-by: Andrew Cagney <cagney@redhat.com>
Signed-off-by: Arun Sharma <aruns@google.com>
2008-01-07 15:41:20 -07:00
David Mosberger-Tang
826374cee5 Merge ../libunwind-v0.98
Conflicts:

	configure
	configure.in
	src/ia64/Ginit.c
2007-11-14 16:51:14 -07:00
David Mosberger-Tang
3899ab7039 Update NEWS file and rerun "autoreconf". 2007-11-14 13:04:15 -07:00
Curt Wohlgemuth
7fda769769 ia64 [src/ia64/Ginit.c]: Don't mark the reference to _Uelf64_get_proc_name
as "weak".  Since the elf-support is in the library anyhow, this serves
     no purpose and in fact causes problem because the weak reference alone
     is not enough to pull in the ELF-code from an archive file, causing to
     spurious failures of get_proc_name.
2007-11-14 12:59:10 -07:00
Curt Wohlgemuth
253f3e5738 [Linux] Fix potentially overlapping memory-copy to use memmove() instead
of memcpy().
2007-10-18 10:45:55 -06:00
Andrew Cagney
05c8284b43 [X86] 2007-10-10 Andrew Cagney <cagney@redhat.com>
* src/x86/init.h (common_init): Fix typo: use UNW_X86_ESI for
     dwarf.loc[ESI].

Acked-by: Arun Sharma <aruns@google.com>
2007-10-15 10:32:07 -06:00
Jose Flavio Aguilar Paulino
9ea6af8ed5 [PPC32] Make PPC32 unwinding work for real. 2007-10-08 12:33:18 -06:00
Jan Kratochvil
57e5696463 Mark Wielaard <mwielaard@redhat.com> writes:
On some systems executable stacks are denied. Since libunwind and the
tests don't actually need executable stacks this patch marks all
assembly files as not needing it.

The original patch comes from frysk:

2007-04-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

    * src/hppa/getcontext.S, src/hppa/setcontext.S, src/hppa/siglongjmp.S,
    src/ia64/Ginstall_cursor.S, src/ia64/Linstall_cursor.S,
    src/ia64/dyn_info_list.S, src/ia64/getcontext.S, src/ia64/longjmp.S,
    src/ia64/setjmp.S, src/ia64/siglongjmp.S, src/ia64/sigsetjmp.S,
    src/ppc64/longjmp.S, src/ppc64/siglongjmp.S, src/x86/longjmp.S,
    src/x86/siglongjmp.S, src/x86_64/longjmp.S, src/x86_64/setcontext.S,
    src/x86_64/siglongjmp.S: Stack should be non-executable, for SELinux.

I added a couple more markers for new files in current libunwind.

Before this patch you would get the following on selinux enabled
systems without allow_exec_stack: error while loading shared
libraries:

libunwind.so.7: cannot enable executable stack as shared object
	requires: Permission denied

After the patch that error disappears and all test results are similar
to the results on systems without executable stack protection.
2007-10-01 08:35:01 -06:00
Jose Flavio Aguilar Paulino
c340d04279 [PPC32] Make get_func_addr() a no-op function.
[PPC64] Add .../lib64 library directory when targeting ppc64.
2007-09-20 11:11:37 -06:00
Jose Flavio Aguilar Paulino
4499bb29a6 [PPC32] First check-in to add preliminary support for Linux/PPC32. 2007-09-12 21:52:25 -06:00
David Mosberger-Tang
6d75df39b5 Regenerate Makefile.in. 2007-08-27 15:31:10 -06:00
Jose Flavio Aguilar Paulino
32e2187fab [PPC64] Get "make check" to work on PPC64 Linux. Add a README entry
describing the expected results.
2007-08-27 09:11:37 -06:00
Jose Flavio Aguilar Paulino
3e24581adc [PPC64] Add PPC64 entry to README and fix David's typo in ppc64/get_func_addr.c 2007-08-24 10:54:00 -06:00
David Mosberger-Tang
e6b9f350f7 Introduce a tdep_get_func_addr_hook() in the ELF lookup_symbol()
routine and add address-space argument.  This is needed because on
PPC64, a the function-name symbol refers to a function descriptor
(unlike, for example, on ia64, where the @fptr() operator is needed to
refer to a function descriptor).  Thus, in order to look up the name
of a function, we need to dereference the function descriptor.  To
make matters more "interesting", the function descriptors are normally
resolved by the dynamic linker, so we can't get their values from the
ELF file.  Instead, we have to read them from the running image, hence
the need for the address-space argument.
2007-08-22 13:02:09 -06:00
David Mosberger-Tang
03e05b4138 Fix two minor compiler-warnings. 2007-08-22 12:57:49 -06:00
David Mosberger-Tang
7fdd022ccf Update autoconf files. 2007-08-09 21:18:15 -06:00
Arun Sharma
bcca3ddcc0 [x86-64] Fix cross-compilation. setcontext.S can only be built natively. 2007-08-07 21:09:12 -06:00
David Mosberger-Tang
297315675e Recreate autoconf files. 2007-08-06 20:27:29 -06:00
David Mosberger-Tang
5c95d139df Cleanup some files from previous patch and rerurn autoconf tools. 2007-08-06 19:59:28 -06:00
Arun Sharma
3afd613545 [X86-64]: Instead of auto-generating _u_context_i.h, hardcode the
necessary offsets in offsets.h as is done for other
	  platforms.  This fixes cross-builds.
2007-08-06 19:58:12 -06:00
David Mosberger-Tang
fad8b04c9f Rebuilt configure and Makefile.in files. 2007-08-06 19:56:28 -06:00
Jose Flavio Aguilar Paulino
b33021e4b2 Add PPC64 support. 2007-08-02 09:59:43 -06:00
David Mosberger-Tang
a6393c0be1 Merge ../libunwind-v0.98 2007-06-06 20:58:56 -06:00
Andreas Schwab
09c8c7d0f3 (unw_create_addr_space): Fix address-leak that triggered when function
was called with an unsupported "byte_order".

Signed-off-by: David Mosberger-Tang <dmosberger@gmail.com>
2007-06-06 20:55:36 -06:00
David Mosberger-Tang
7923ae31a0 Re-run aclocal and automake to update Makefiles so new files (e.g.,
x86_64/gen_offsets.c) get distributed.
2007-04-10 20:35:15 -06:00
Arun Sharma
497b987043 Add gen-offsets to the Makefile
This is so that the source file gets distributed and _ucontext_i.h is
generated properly on the target machine.

Signed-off-by: Arun Sharma <arun.sharma@google.com>
2007-04-10 20:18:56 -06:00
Arun Sharma
31440e9796 Make libunwind pass C++ exceptions correctly
When libunwind is linked with a C++ program that throws exceptions,
the exception that's thrown is passed in %rax. However, libc's
setcontext clears %rax, causing problems.

This patch implements a setcontext that doesn't clobber rax.

TBD: Add dwarf CFI annotations

Signed-off-by: Arun Sharma <arun.sharma@google.com>
2007-04-05 20:40:41 -06:00
Arun Sharma
55fe524775 Cleanup the hash() function copied from ia64
Fixes the compiler warning on x86-32.

Signed-off-by: Arun Sharma <arun.sharma@google.com>
2006-08-16 15:43:49 -06:00
Arun Sharma
a5d0c1f8b7 Remove HAVE___THREAD. This was never tested.
Signed-off-by: Arun Sharma <arun.sharma@google.com>
2006-08-16 15:41:32 -06:00
David Mosberger-Tang
62bacfcf1f [x86-64] Minor reformatting for GNU-style and use memset() in lieu of bzero(). 2006-08-10 21:34:31 -06:00
Arun Sharma (अरुण)
795529eee3 [x86-64] Add a known good address cache.
This improves the performance of Lperf-simple from 500ns to 195ns
on the avg.

Signed-off-by: Arun Sharma <arun.sharma@google.com>
2006-08-10 21:30:01 -06:00
David Mosberger-Tang
bde67706ed Delete some backup files that accidentally made it into git. 2006-07-27 21:30:19 -06:00
Arun Sharma
11ea1275bd [dwarf] The sword() function in Gexpr.c doesn't do what's intended.
Yes, it casts to signed, but then converts right back to
unsigned via the return type.  Fixed thus.

Signed-off-by: Richard Henderson <rth@redhat.com>
Signed-off-by: Arun Sharma <arun.sharma@google.com>
2006-07-26 22:12:10 -06:00
Arun Sharma
cdb96f333c [x86] (common_init): Fix spurious errors caused by uninitialized members.
Signed-off-by: Richard Henderson <rth@redhat.com>
Signed-off-by: Arun Sharma <arun.sharma@google.com>
2006-07-26 22:09:10 -06:00
Arun Sharma
8297866bd4 [x86-64] (unw_step): Further refine handling of functions without unwind-info.
CFA should be incremented by 16 in the hope that the previous frame
may have valid unwind info.

Also increase the default frame pointer recognition heuristic from 4k
to 16k.

Signed-off-by: Andrey Veskov <Andrey.Veskov@intel.com>
Signed-off-by: Arun Sharma <arun.sharma@google.com>
2006-07-26 22:06:48 -06:00
Arun Sharma
06d2ffa41a [x86-64] (unw_step): Improve handling of functions which lack unwind info.
If following the frame-chain leads to a frame >= 4KB away, we conclude that
the frame-pointer isn't really valid.
2006-07-26 22:04:40 -06:00
Arun Sharma
7c0907634d [x86-64] (unw_is_signal_frame): If access mem fails, it's not a signal frame. 2006-07-26 21:58:27 -06:00
Arun Sharma
58888a5060 (dwarf_find_save_locs): Also apply register-state after parsing the FDE 2006-07-26 21:55:09 -06:00
Arun Sharma
527225e492 [x86-64] Make a best effort at validating pointers before dereferencing them.
Signed-off-by: Arun Sharma <arun.sharma@google.com>
2006-07-26 21:46:39 -06:00
Arun Sharma
4312719cbc [dwarf] Need to guard against multiple threads accessing the rs cache.
Signed-off-by: Arun Sharma <arun.sharma@google.com>
2006-07-26 21:44:38 -06:00
Arun Sharma
c5dc3c150a [dwarf] Allow return address column to differ from function to function.
Signed-off-by: Andrey Veskov <Andrey.Veskov@intel.com>
Signed-off-by: Arun Sharma <arun.sharma@google.com>
2006-07-26 21:29:50 -06:00
Arun Sharma
60b7af702a (dwarf_find_save_locs): Add a comment.
Now that dwarf_find_save_locs() not just finds the save-locations but
also updates the cursor-state, document this fact (the function really
is misnamed now).
2006-07-26 21:25:37 -06:00
Arun Sharma
3dfde7a3f0 (dwarf_find_save_locs): put_unwind_info() is not needed in the cached case. 2006-07-26 21:23:30 -06:00
Arun Sharma
00db7f752a Implement a ip -> dwarf_reg_state cache.
Signed-off-by: Arun Sharma <arun.sharma@google.com>
2006-07-26 21:18:49 -06:00
David Mosberger-Tang
1a0af36731 Fix forgotten copyright year update. 2006-07-26 15:48:48 -06:00
David Mosberger-Tang
6a89d40236 Fix missed "tdep.h" -> "libunwind_i.h" conversions. 2006-07-26 15:44:23 -06:00
David Mosberger-Tang
8c94e12429 (_UPT_find_proc_info): Fix potential crash due to uninitialized pointer.
Be sure to clear pi->unwind_info when looking up the kernel table and
not needing the unwind-info.  Otherwise, _UPT_put_unwind_info() may
erroneously call free() on the pointer, even though that space wasn't
malloc'd, leading to crashes..
2006-07-26 15:43:23 -06:00
David Mosberger-Tang
fd2fa63a6c Fix missed merge on setjmp_i.h and siglongjmp.c. 2006-07-26 15:21:52 -06:00
David Mosberger-Tang
69d85f7c14 Restore mi/Ldyn-remote.c. 2006-07-26 15:10:48 -06:00
David Mosberger-Tang
236e370dc5 Remove three Emacs backup-files which accidentially got checked into git. 2006-07-26 14:54:50 -06:00
David Mosberger-Tang
6daeeac60a Revert "Initial revision"
This reverts e6446885f4 commit.
2006-07-26 14:53:49 -06:00
David Mosberger-Tang
a369768c27 Revert "Initial revision"
This reverts 06d223e924 commit.
2006-07-26 14:47:44 -06:00
David Mosberger-Tang
ca69fee8bb Merge ../libunwind-v0.98
Conflicts:

	include/dwarf_i.h
	include/x86/jmpbuf.h
	include/x86_64/jmpbuf.h
	src/hppa/init.h
	src/mi/Gget_fpreg.c
	src/mi/Gset_fpreg.c
	src/mi/strerror.c
2006-07-25 21:41:43 -06:00
David Mosberger-Tang
af2503e223 Fix bug in libunwind-ptrace which can cause reading of random data.
(maps_next): After reading less than a full buffer of data, copy
remaining data to the top of the buffer so as to maintain the
invariant that all data between mi->buf and mi->buf_end is valid.
This avoids maps_next() parsing uninitialized data.
2006-07-25 21:35:30 -06:00
David Mosberger-Tang
f176ad6fc6 Bring git v0.98.5 tree in sync with released v0.98.5.
Sadly, the conversion from Bitkeeper -> CVS -> git wasn't perfect.  Or
so it seems.
2006-07-25 21:32:28 -06:00
hp.com!davidm
36a0275014 Allow write-access to UNW_IA64_BSP and UNW_REG_SP.
(Logical change 1.303)
2005-05-20 15:32:18 +00:00
hp.com!davidm
cf2a44ca49 Use update_nat() instead of equivalent open code.
(Logical change 1.301)
2005-05-20 14:58:46 +00:00
hp.com!davidm
f5de64f9f7 If r1 has been saved in an ABI-specific frame
(such as an interrupt frame), access the saved
value.  Otherwise, pick it up from the unwind-info
for the matching IP.

(Logical change 1.300)
2005-05-20 14:50:54 +00:00
hp.com!davidm
399f120c96 Drop unused readonly variable.
(Logical change 1.299)
2005-05-20 14:13:01 +00:00
hp.com!davidm
3fa950e818 Remove early-out test when IP is zero.
(Logical change 1.298)
2005-05-20 13:35:32 +00:00
hp.com!davidm
19e3bf3ea6 (rbs_switch): Use rbs_get_base() to determine the size of the register
backing store.

(Logical change 1.297)
2005-05-20 13:13:07 +00:00
hp.com!davidm
9724ac492c (common_init): Use rbs_get_base() to determine size of register-backing store.
(Logical change 1.297)
2005-05-20 13:13:07 +00:00
hp.com!davidm
080f8423d9 Read sp and bsp via ia64_get() and then pass them to common_init().
(Logical change 1.296)
2005-05-20 12:47:59 +00:00
hp.com!davidm
50bbc1fe3d (set_as_arg): New function.
(get_initial_stack_pointers): Likewise.
(unw_init_local): Use new functions to make code more readable and add
	Linux kernel support.

(Logical change 1.296)
2005-05-20 12:47:59 +00:00
hp.com!davidm
84bd124a24 (inlined_uc_addr): Remove UNW_IA64_AR_BSP. We no longer need this ugly hack
since the initial BSP is now passed directly into common_init().

(Logical change 1.296)
2005-05-20 12:47:59 +00:00
hp.com!davidm
4992f1c936 (common_init): Take initial sp and bsp values as arguments instead of
reading them via ia64_get().

(Logical change 1.296)
2005-05-20 12:47:59 +00:00
hp.com!davidm
97b483dcaa Drop include of "mempool.h", which causes problems in the kernel, due to
a conflicting <linux/mempool.h>.
(SOS_MEMORY_SIZE): Move to libunwind_i.h.

(Logical change 1.295)
2005-05-20 11:28:16 +00:00
hp.com!davidm
1b63be3f89 (parse_dynamic): Make it a dummy-function of _U_dyn_op isn't defined, i.e.,
if libunwind-dynamic.h isn't in use (as is the case for the kernel at
	the moment).

(Logical change 1.295)
2005-05-20 11:28:16 +00:00
hp.com!davidm
7894f0edc0 (ia64_strloc): Move to Grbs.c.
(Logical change 1.295)
2005-05-20 11:28:16 +00:00
hp.com!davidm
96407911ee (ia64_strloc): Move here from Ginit.c so it can be shared with the kernel.
(Logical change 1.295)
2005-05-20 11:28:16 +00:00
hp.com!davidm
2e35dd035c Regenerate.
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
3e8a50255c Include from tdep-$(arch) directory after the normal incliude directory.
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
32385d36fd Include "tdep-ia64/rse.h" instead of "ia64/rse.h".
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
1228462adc Include "rse.h" instead of "ia64/rse.h".
Include "libunwind_i.h" instead of "internal.h" and "tdep.h".
Define rbs_cover_and_flush() only for the !UNW_REMOTE_ONLY case.
(ia64_is_big_endian): New macro.
(ia64_get_abi): Likewise.
(ia64_set_abi): Likewise.
(ia64_get_abi_marker): Likewise.

(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
8e6f3c8485 Include "rse.h" instead of "ia64/rse.h".
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
83820a78d1 Include "libunwind_i.h" instead of "tdep.h".
Include "tdep-ia64/rse.h" instead of "ia64/rse.h".

(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
67f90c24be Include "libunwind_i.h" instead of "tdep.h".
Include "elfxx.c" instead of "elf64.c".

(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
d9e100753f Include "libunwind_i.h" instead of "tdep.h".
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
07b01ad205 Include "libunwind_i.h" instead of "tdep.h" and "internal.h".
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
670dd57e82 Include "libunwind_i.h" instead of "libunwind.h" and a whole bunch of standard
header files.
Use lock_release instead of mutex_unlock/sigprocmask calls.

(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
5724bee8c2 Include "libunwind_i.h" instead of "internal.h".
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
19df6612fa Include "libunwind_i.h" instead of "internal.h" and "tdep.h".
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
b7adf160ee Include "dwarf_i.h" instead of "dwarf.h".
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
c027d98386 Don't include headers already included via unwind_i.h.
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
df3d6af467 Don't include <string.h>.
Include "libunwind_i.h" instead of "tdep.h".

(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
dda1a6d625 Don't include <string.h>.
Include "libunwind_i.h" instead of "internal.h" and "tdep.h".

(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
379fb069d2 Don't include <string.h>, <unistd.h>, <sys/types.h>.
Include "libunwind_i.h" instead of "tdep.h".

(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
9e8ba174e6 Don't include <string.h> and <stdlib.h>.
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
9fac7579ee Don't include <string.h> and "tdep.h".
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
71acf1d00e Don't include <stdlib.h>.
Include "libunwind_i.h" instead of "tdep.h".

(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
03ba50ccaa Don't include <stdlib.h> and <string.h>.
Include "libunwind_i.h" instead of "tdep.h".

(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
fa2871946a Don't include <assert.h> and <stddef.h>.
Use ia64_get_abi_marker() instead of directly referencing c->last_abi_marker.
(linux_scratch_loc): When accessing an fp-reg, default to IA64_FPREG_LOC.
	Handle more registers for the Linux interrupt-frame case.
(tdep_access_reg): Use ia64_get_abi() instead of c->as->abi.
	Use ia64_is_big_endian() instead of c->as->big_endian.

(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
8bb167d4c1 Don't include <alloca.h> and <stdlib.h>.
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
6675be4926 (linux_interrupt): Enable this code for the kernel, too.
Use ia64_get_abi_marker() instead of c->abi_marker.
	Use ia64_set_abi() instead of storing directly to c->as->abi.

(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
ee6eeb4f7d (get_script_cache): Use HAVE_ATOMIC_H instead of __linux && __KERNEL__.
(Logical change 1.294)
2005-05-20 09:48:08 +00:00
hp.com!davidm
8a1e0a2bcd Auto merged
2005/05/17 14:14:23-07:00 hp.com!davidm
(tdep_access_reg): Access AR.EC via ec_loc instead of cfm_loc.

(Logical change 1.293)
2005-05-17 21:28:19 +00:00
hp.com!davidm
26fdb45d76 Auto merged
2005/05/17 14:14:23-07:00 hp.com!davidm
(linux_sigtramp): Add "prev_cfm_loc" argument.  Use it to set c->ec_loc.
(linux_interrupt): Likewise.
(hpux_sigtramp): Likewise.
(update_frame_state): Copy old cfm_loc to prev_cfm_loc and pass it to
	ABI-specific handlers.  Initialize c->ec_loc to c->cfm_loc by default.

(Logical change 1.293)
2005-05-17 21:28:19 +00:00
hp.com!davidm
a6ba57d556 Auto merged
2005/05/17 06:10:13-07:00 hp.com!davidm
(tdep_access_reg): Don't rotate contents of UNW_IA64_PR.

(Logical change 1.292)
2005-05-17 13:24:49 +00:00
hp.com!davidm
8462f1f87d (pr_ltop): Remove.
(pr_ptol): Remove.

(Logical change 1.292)
2005-05-17 13:24:49 +00:00
mostang.com!davidm
23884c98cb Rename: src/sigsetjmp.c -> src/setjmp/sigsetjmp.c
}(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
4d7f2a5be7 Rename: src/sigsetjmp.c -> src/setjmp/sigsetjmp.c
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
5ac5853589 Rename: src/setjmp.c -> src/setjmp/setjmp.c
}(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
8e06df0e52 Rename: src/setjmp.c -> src/setjmp/setjmp.c
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
9bc79a618b Rename: src/dwarf/dwarf-eh.h -> include/dwarf-eh.h
}(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
06d223e924 Initial revision 2005-05-03 09:13:17 +00:00
mostang.com!davidm
4e833d43fc Include "setjmp_i.h".
Abstract ia64-specific code into bsp_match() routine.
Support any platform with at least 2 EH argument registers.

}(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
4f16756123 Include "setjmp_i.h".
Abstract ia64-specific code into bsp_match() routine.
Support any platform with at least 2 EH argument registers.

2004/12/06 01:33:16-08:00 mostang.com!davidm
Rename: src/longjmp.c -> src/setjmp/longjmp.c

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
203c0a5363 Include "setjmp_i.h".
Abstract ia64-specific code into bsp_match() and
resume_restores_sigmask() routines.

}(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
acf90b1f82 Include "setjmp_i.h".
Abstract ia64-specific code into bsp_match() and
resume_restores_sigmask() routines.

2004/12/06 01:33:01-08:00 mostang.com!davidm
Rename: src/siglongjmp.c -> src/setjmp/siglongjmp.c

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
239ea4e7ea Implement for real. Note: this version is currently broken.
We don't pass sigmask the way this routine expects because it
can't work.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
7a5549f2d8 Drop "inline" since it's now part of ALWAYS_INLINE.
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
411331eecb Delete: src/hppa/Lget_reg.c
}(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
ca02ad1708 Delete: src/hppa/Lget_proc_name.c
}(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
181bddfba0 Delete: src/hppa/Gget_reg.c
}(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
f45210852c Delete: src/hppa/Gget_proc_name.c
}(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
10a269d6d0 Also enable DWARF code for UNW_TARGET_HPPA.
2004/11/23 16:59:56-08:00 mostang.com!davidm
(_UPTi_find_unwind_table): Implement first draft for x86/-64.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
b267dfc8c9 Adjust for sigset_t to intrmask_t renaming.
}(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
dc89a17613 Adjust for sigset_t to intrmask_t renaming.
2004/12/02 00:40:45-08:00 mostang.com!davidm
Add copyright notice.
Provide canonical DWARF-based implementation.

2004/11/30 23:38:42-08:00 mostang.com!davidm
Rename: src/hppa/global.c -> src/hppa/Gglobal.c

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
1f5ac0f5bd Adjust for sigset_t to intrmask_t renaming.
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)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
7fbb8a9593 Adjust for sigset_t to intrmask_t renaming.
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
9f3360a546 Adjust for "ia64_rse" to "rse" prefix change.
2005/02/23 12:55:45-08:00 mostang.com!davidm
(inlined_uc_addr): Adjust for ALWAYS_INLINE change.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
7f8b54ae5c Adjust for "ia64_rse" to "rse" prefix change.
2005/02/20 21:42:55-08:00 mostang.com!davidm
Adjust for NELEMS to ARRAY_SIZE renaming.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
3f73836b87 Adjust for "ia64_rse" to "rse" prefix change.
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)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
3e00b79170 Adjust for "ia64_rse" to "rse" prefix change.
2004/12/06 10:40:49-08:00 mostang.com!davidm
(tdep_access_reg): Fix typo in code to read EH argument registers.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
4849af2d09 Adjust for "ia64_rse" to "rse" prefix change.
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)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
87081cebab Adjust for "ia64_rse" to "rse" prefix change.
2004/10/25 07:52:30-07:00 hp.com!davidm
(unw_step): Add Debug statement to print return-value.

2004/10/25 05:21:51-07:00 hp.com!davidm
(unw_step): Print IP along with cursor address.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
bf832fc29e Adjust for "ia64_rse" to "rse" prefix change.
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
3f16641760 (x86_local_resume): Delete unused code.
(establish_machine_state): Fix off-by-one error.
	Fix Debug-statement formatting & debug-level.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
17bf4d0af8 (unw_step): If dwarf_step() fails and the frame doesn't look like
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)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
fa0828ac7d (unw_step): Also print IP as part of the function-trace.
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)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
93599dc278 (unw_init_local): Implement it based on the DWARF unwinder.
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
0f27732d35 (unw_get_proc_info): Implement it based on dwarf_make_proc_info().
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
7ac9665fd3 (unw_get_proc_info): Don't freak out if dwarf_make_proc_info() fails.
Unfortunately, it must fail for current versions of libc
	since they fail to provide unwind-info for _start() and
	_dl_start().

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
b1b84400b9 (tdep_uc_addr): Define as HIDDEN.
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
db1517609c (tdep_access_reg): Buffer writes to EH argument registers (EAX
and EDX) in dwarf.eh_args[].


2004/11/17 02:43:39-08:00 mostang.com!davidm
(tdep_access_reg): Treat UNW_X86_ESP exactly like UNW_X86_CFA.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
caa61dfec1 (remote_install_cursor): Fix off-by-one error.
2004/10/25 05:21:51-07:00 hp.com!davidm
(unw_resume): Print IP along with cursor-address.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
46b7b8196c (is_cie_id): New function.
(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)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
c14371409a (fetch_proc_info): Decrement IP before searching for dynamic/static
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)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
4502aa0ff2 (dwarf_read_encoded_pointer): Implement simply by calling
dwarf_read_encoded_pointer_inlined().

2004/11/17 02:43:39-08:00 mostang.com!davidm
(dwarf_read_encoded_pointer): Declare proc-info-pointer argument
	as "const".

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
3239e7db60 (dwarf_cie_info_pool): New variable.
(dwarf_init): Initialize dwarf_cie_info_pool.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
bbe87ea403 (common_init): Don't forget to clear c->dwarf members args_size,
ret_addr_column, pi_valid, and pi_is_dynamic.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
7fcb8006a9 (common_init): Adjust for ALWAYS_INLINE change.
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
8a66c9c635 (access_reg): Delete left-over Debug statement.
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
9c025efac2 (_UI_siglongjmp_cont): Provide dummy implementation.
(_UI_longjmp_cont): Likewise.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
e3180d47a0 (UC_MCONTEXT_{R8-R15,RDI,RSI,RBX,RDX,RAX,RCX}: New macros.
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
mostang.com!davidm
04fde4a63b (Logical change 1.290) 2005-05-03 09:13:17 +00:00
hp.com!davidm
981ff25f70 Regenerate.
2004/12/15 15:36:36-08:00 hp.com!davidm
Regenerate.

2004/12/06 10:40:49-08:00 mostang.com!davidm
Regenerate.

2004/12/04 17:03:36-08:00 mostang.com!davidm
Regenerate.

2004/12/02 00:40:45-08:00 mostang.com!davidm
Regenerate.

2004/11/23 16:59:56-08:00 mostang.com!davidm
Regenerate.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
e6446885f4 Initial revision 2005-05-03 09:13:17 +00:00
hp.com!davidm
516f759229 Fix two typos which kept things from building on x86-64 and other
platforms.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
0dec41725c Fix missing NELEMS -> ARRAY_SIZE adjustment.
2004/12/02 00:40:45-08:00 mostang.com!davidm

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
df5acdd24a Fix missing NELEMS -> ARRAY_SIZE adjustment.
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
7b17187a39 Define ucontext_t, sigcontext_t, and strct rt_sigframe offsets and
pray they never change.

2004/12/02 00:40:45-08:00 mostang.com!davidm

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
7c4be6f9bc Auto merged
2005/04/07 12:19:38-07:00 hp.com!davidm
(ia64_make_proc_info): After looking up proc-info, cache it if
	caching is enabled.

2005/02/20 21:42:55-08:00 mostang.com!davidm
Adjust for NELEMS to ARRAY_SIZE renaming.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
b85ca59440 Auto merged
2004/12/02 18:37:47-08:00 hp.com!davidm
(get_list_addr): Even the "it's missing" version of this routine
	must clear *countp to avoid spurious failures.

2004/11/03 11:45:24-08:00 hp.com!davidm
Auto merged

2004/10/21 16:06:28+02:00 homeip.net!davidm
(get_list_addr): Don't fail with -UNW_ENOINFO just because something
	in /proc/maps isn't mappable.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
a04f52279d Add include of "offsets.h".
(unw_step): Improve debug output.  Implement signal-frame fall-back
	code.

2004/12/02 00:40:45-08:00 mostang.com!davidm
(update_frame_state): Remove.
(unw_step): Implement it based on DWARF unwinder.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
a9cad72ed4 (x86_64_local_resume): Fix missing "H" typo.
2004/11/30 22:44:47-08:00 mostang.com!davidm
(my_rt_sigreturn): New function.
(x86_64_local_resume): Use my_rt_sigreturn().  The normal sigreturn()
	does nothing (returns with an error).

2004/11/23 18:01:09-08:00 mostang.com!davidm
(x86_64_local_resume): Provide a minimal implementation (a la x86).
(establish_machine_state): Fix off-by-one error.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
5d8b2e3415 (valid_object): Declare as HIDDEN instead of PROTECTED.
(get_proc_name): Likewise.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
6fc50d4ed6 (unw_search_ia64_unwind_table): Always return unwind_info in the
local case since it's trivial to do so and saves us time if
	later on we need to build a script for that procedure.

2005/02/23 14:40:44-08:00 mostang.com!davidm
Adjust for sigset_t to intrmask_t renaming.

2004/10/25 05:21:51-07:00 hp.com!davidm
(unw_search_ia64_unwind_table): Clarify comment and add a Debug() statement
	for the case where we find a bad unwind-header version.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
f9b8ba0d47 (unw_resume): Reject attempts to resume execution at IP 0.
2004/12/02 18:37:47-08:00 hp.com!davidm
(my_rt_sigreturn): New function.

2004/12/02 00:40:45-08:00 mostang.com!davidm

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
39ec1bd6dc (unw_is_signal_frame): Always return 0 for NULL IP.
2004/12/02 18:37:47-08:00 hp.com!davidm
(unw_is_signal_frame): Implement it.

2004/12/02 00:40:45-08:00 mostang.com!davidm

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
6ed360df7e (unw_is_signal_frame): Add a Debug statement.
(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
68edb681d8 (uc_addr): Adjust for Debian/sarge header-file changes.
(access_reg): Adjust & enable sanity-check.
(acces_fpreg): Provide minimal implementation.

2004/12/02 00:40:45-08:00 mostang.com!davidm
(uc_addr): Implement it so it starts to be useful.
(_Uhppa_uc_addr): Rename from _Ux86_uc_addr.
(get_static_proc_name): New function.
(hppa_local_addr_space_init): Rename from x86_local_addr_space_init().
	Use dwarf_find_proc_info, hppa_local_resume, and
	get_static_proc_name callbacks.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
555bae8aa3 (tdep_access_reg): When writing RAX/RDX, update eh_args[] and
eh_valid_mask instead.  When reading and the corresponding
	eh_valid_mask bit is set, read from eh_args[] instead.

2004/11/17 02:43:39-08:00 mostang.com!davidm
(tdep_access_reg): Treat UNW_X86_64_RSP exactly like UNW_X86_64_CFA.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
5b0507c432 (tdep_access_reg): Handle UNW_HPPA_IP, UNW_HPPA_CFA, UNW_HPPA_SP,
and UNW_HPPA_EH{0,1,2,3} correctly.
(tdep_access_fpreg): Implement.

2004/12/02 00:40:45-08:00 mostang.com!davidm
(tdep_access_reg): Provide a minimally working implementation.
(tdep_access_fpreg): New (unimplemented) function.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
b38691980f (sos_alloc): Fix soslock vs. sos_lock typo.
2005/02/23 14:40:44-08:00 mostang.com!davidm
Adjust for sigset_t to intrmask_t renaming.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
7e0192f53a (setcontext): Declare.
2004/12/02 00:40:45-08:00 mostang.com!davidm
Delete accessor macros which have been replaced by their DWARF
equivalent.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
16af7ae96e (libunwind_setjmp_la_SOURCES_x86_64): Mention longjmp.S.
(libunwind_la_SOURCES_x86_64_common): Mention x86_64/setcontext.S.

2004/12/15 15:36:36-08:00 hp.com!davidm
(libunwind_ptrace_a_SOURCES): Mention _UPT_elf.c.
(libunwind_la_SOURCES_ia64_common): Move ELF files to here
	from libunwind_la_SOURCES_ia64.
(libunwind_la_SOURCES_hppa_common): Likewise.
(libunwind_la_SOURCES_x86_common): Likewise.
(libunwind_la_SOURCES_x86_64_common): Likewise.

2004/12/06 10:40:49-08:00 mostang.com!davidm
(libunwind_setjmp_la_SOURCES_common): Move files into
	setjmp subdirectory.
(libunwind_setjmp_la_SOURCES_hppa): Don't bother mentioning
	common files again.
(libunwind_setjmp_la_SOURCES_x86): Likewise.
(libunwind_setjmp_la_SOURCES_x86_64): Likewise.

2004/12/04 17:00:04-08:00 hp.com!davidm
(libunwind_la_SOURCES_hppa): Mention hppa/setcontext.S.

2004/12/02 00:40:45-08:00 mostang.com!davidm
(COMMON_SO_LDFLAGS): Drop -XCClinker -nostdlib and
	$(LDFLAGS_STATIC_LIBCXA) and move them...
(libunwind_la_LDFLAGS): ...to here instead.  We only want the
	local unwind-library built that way.
(libunwind_la_SOURCES_hppa_common): New macro.
(libunwind_la_SOURCES_hppa): Update.
(libunwind_hppa_la_SOURCES_hppa): New macro.

2004/11/23 16:59:56-08:00 mostang.com!davidm
(dwarf_SOURCES_common): Remove dwarf/dwarf-eh.h.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
23405d02ec (get_script_cache): Fix typo in Debug() statement (missing argument).
(put_script_cache): Fix typo in argument name.

2005/04/07 12:19:38-07:00 hp.com!davidm
(ia64_get_cache_proc_info): Move it to near the end of the file.
(script_init): Also call ia64_fetch_proc_info() if the script was
	found in the cache but it's empty (count == 0 and NULL
	unwind_info pointer).  Also invoke build_script() if
	script has no instructions yet (count==0).  Add assertion
	to ensure that build_script() never returns an empty
	script.
(ia64_cache_proc_info): New function to cache the proc_info only.

2005/02/23 14:40:44-08:00 mostang.com!davidm
Adjust for sigset_t to intrmask_t renaming.

2005/02/23 13:10:05-08:00 mostang.com!davidm
Adjust for "ia64_rse" to "rse" prefix change.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
e8b25005e7 (common_init): Initialize UNW_HPPA_IP based on save-location for
UNW_HPPA_RP.

2004/12/02 00:40:45-08:00 mostang.com!davidm
(common_init): Provide a minimally working implementation.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
081c41d8a6 (common_init): Don't forget to initialize sigcontext_format and
sigcontext_addr.

2004/11/17 02:43:39-08:00 mostang.com!davidm
(common_init): Don't forget to clear c->dwarf members args_size,
	ret_addr_column, pi_valid, and pi_is_dynamic.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
828d48662d (UNW_HPPA_IP): New entry.
2004/12/02 00:40:45-08:00 mostang.com!davidm
(_UPT_reg_offset): Add minimal set of definitions for HPPA.

2004/11/23 16:59:56-08:00 mostang.com!davidm
Fix offset for UNW_X86_64_RBP.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
75fb20d67d (SPILL): Adjust for Debian/sarge changes in the ucontext_t structure.
2004/12/02 00:40:45-08:00 mostang.com!davidm

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
5b20c6e082 (Logical change 1.290) 2005-05-03 09:13:17 +00:00
homeip.net!davidm
bb03dca33e Add Debug statement for return-value.
2004/10/19 23:15:02-07:00 mostang.com!davidm
(update_frame_state): Take additional argument "prev_cfa".
	When we detect a NULL-frame, debug-print the IP and the CFA
	so we know where things went wrong.
(dwarf_step): Get "prev_cfa" before we call dwarf_find_save_locs(),
	since update_frame_state() doesn't actually update
	the CFA.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
homeip.net!davidm
670399d357 (pop): Returning the right element does help...
(pick): Likewise.
(dwarf_eval_expr): Fix "while" conditional so we see all operators.
	Fix DW_OP_litN typo: "opcode = DW_OP_lit0" to
	"opcode - DW_OP_lit0".
	Add lots of Debug() statements so we can see what's going
	on.  Debug level 15 will show just entry/return values.
	Debug level 16 shows all operators.

(Logical change 1.290)
2005-05-03 09:13:17 +00:00
hp.com!davidm
8efd6d24da (desc_alias): Fix off-by-one bug.
(Logical change 1.287)
2005-04-20 21:01:22 +00:00
hp.com!davidm
ea7155ebfd (get_list_addr): Clear ui->ei.image/ui->ei.size after unmapping the
image.

(Logical change 1.286)
2005-03-31 21:18:27 +00:00
hp.com!davidm
15df8b804c (_ReadSLEB): Fix typo: shift needs to be increment before checking
for loop-exit.  Otherwise, sign-extension may clobber the
	most recently read 7 bits.

(Logical change 1.284)
2005-02-19 06:15:20 +00:00
hp.com!davidm
272caabbfa Regenerate.
(Logical change 1.283)
2004-11-16 22:03:04 +00:00
hp.com!davidm
d15f52662a (local_find_proc_info): When compiling for libunwind-ia64, declare
_U_dyn_info_list_addr as weak and if it remained undefined,
	return -UNW_ENOINFO.

(Logical change 1.282)
2004-11-16 18:47:39 +00:00
hp.com!davidm
4e731a5572 (get_dyn_info_list_addr): When compiling into libunwind-ia64, declare
_U_dyn_info_list_addr as weak and fail if the symbol remained
	undefined.
(get_static_proc_name): Likewise for _Uelf64_get_proc_name().

(Logical change 1.282)
2004-11-16 18:47:39 +00:00
hp.com!davidm
0f9f815cf1 Regenerate.
(Logical change 1.280)
2004-11-03 21:50:24 +00:00
hp.com!davidm
27a9067229 (libunwind_la_LIBADD): Append $(LIBCRTS).
(Logical change 1.280)
2004-11-03 21:50:24 +00:00
hp.com!davidm
346b85ec54 (get_list_addr): Don't fail with -UNW_ENOINFO just because something
in /proc/maps isn't mappable.

(Logical change 1.279)
2004-11-03 19:44:44 +00:00
hp.com!davidm
e8518b85c5 Ignore NULL stack-frames---they can't possibly be the correct target of
a longjmp() because the caller of setjmp() must have a non-NULL frame.

(Logical change 1.273)
2004-10-13 14:14:09 +00:00
hp.com!davidm
22ac4c078f (__sigsetjmp): Start updating jmp_buf only after sigprocmask() returned
successfully.  This avoids a failure in ia64-test-setjmp which
	was due to the fact that sigprocmask() caused a segfault (due to
	overflowing the stack) and at that point we had a partially updated
	jmp_buf.

(Logical change 1.272)
2004-10-13 14:08:02 +00:00
homeip.net!davidm
b62e5e37b3 Regenerate.
(Logical change 1.271)
2004-10-05 16:28:06 +00:00
mostang.com!davidm
caa528e1e8 Add dummy implementation of _UI_longjmp_cont().
(Logical change 1.268)
2004-09-09 16:26:15 +00:00
mostang.com!davidm
81f4953a1f Fix typo: REMOTE_ONLY -> UNW_REMOTE_ONLY.
(Logical change 1.266)
2004-09-09 13:06:01 +00:00