1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-06-26 11:21:44 +02:00
Commit graph

1375 commits

Author SHA1 Message Date
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