1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-12-03 19:57:39 +01:00
Commit graph

2493 commits

Author SHA1 Message Date
Alexander Esilevich
283db4d970 Additional debug output was added 2010-09-15 00:47:34 +07:00
Alexander Esilevich
5fd973cfe2 Shared lib was added 2010-09-15 00:00:49 +07:00
Alexander Esilevich
91d4e65da7 Fix in proc info searching 2010-09-15 00:00:25 +07:00
Alexander Esilevich
262fa7f56e Usage of hidden visibility was temporary disabled for pathcc 2010-08-23 07:14:08 +07:00
root
f0bb27017d CMAKE_CURRENT_SOURCE_DIR was replaced with libunwind_SOURCE_DIR 2010-08-22 17:34:00 +00:00
esil
c7544f5e44 Local resume is enabled 2010-08-02 09:17:48 -07:00
esil
08d42049e2 Offsets of fields in ucontext structure are added for solaris 2010-08-02 09:16:46 -07:00
Alexander Esilevich
ee32be6651 UC_MCONTEXT_FPREGS_PTR is made optional 2010-07-30 22:22:49 +07:00
Alexander Esilevich
42a6f57c19 Fix for debug mode 2010-07-30 11:40:35 +07:00
esil
3d4e3b63a0 First implementation for solaris. Debug mode is added 2010-07-29 21:38:03 -07:00
Alexander Esilevich
debb268754 Searching of FDE in eh frame is extracted to separate function 2010-07-30 07:19:10 +07:00
Alexander Esilevich
e97a676dd7 Fix for find_proc_fde implementation for linux 2010-07-30 07:19:10 +07:00
esil
5d4a07690e x86_64_local_resume is moved undef ifdef __linux__ 2010-07-29 15:33:09 -07:00
esil
a6f1065c24 Parameters for find_proc_fde function are fixed 2010-07-29 15:17:47 -07:00
Alexander Esilevich
15319ec864 Searching of proc fde is moved to separate function 2010-07-30 05:14:15 +07:00
Alexander Esilevich
ecbd61b631 Unused member is removed from callback_data structure 2010-07-30 05:03:43 +07:00
esil
97f1d2758d Fixes for solaris 2010-07-29 14:49:41 -07:00
Alexander Esilevich
06564bd0b9 find_proc_info_refactoring 2010-07-30 03:40:58 +07:00
Alexander Esilevich
7d6f41048c Unused members are removed from callback_data struct 2010-07-29 09:34:29 +07:00
Alexander Esilevich
35e1cb3ecb find_proc_info refactoring 2010-07-29 09:27:58 +07:00
Alexander Esilevich
69bfe6f298 find_proc_info refactoring 2010-07-29 09:21:42 +07:00
Alexander Esilevich
14e193cab6 find_proc_info refactoring 2010-07-29 09:12:35 +07:00
Alexander Esilevich
e61c4dde18 find_proc_info refactoring 2010-07-29 08:45:06 +07:00
Alexander Esilevich
582c652231 find_proc_info refactoring 2010-07-29 07:10:27 +07:00
Alexander Esilevich
cac775a482 libunwind configuration is implemented 2010-07-28 02:35:11 +07:00
Alexander Esilevich
aa4b723f2b Bug with setcontext.S & getcontext.S is fixed 2010-07-28 00:53:33 +07:00
Alexander Esilevich
121898b591 C++ exception support is added in cmake scripts 2010-07-28 00:44:52 +07:00
Alexander
b5aeae55fc Cmake scripts are added 2010-07-27 21:52:17 +07:00
Arun Sharma
4b8404d153 Remove the special casing of ia64 for GetIPInfo()
This rule (no IP adjustment on ia64) may be correct for locating the right FDE.

Unfortunately the same adjusted/unadjusted return address is being used also by
__gxx_personality_v0() to locate the right call-site (the try {} block) for
unwinding.  And this case is already sensitive for off-by-one PC values.
Unlike the FDE location where the function prologue + epilogue make it immune
against off-by-one PC calculations.

Therefore suggesting to unify it with non-ia64 case.

Signed-off-by: Jan Kratochvil <jan.kratochvil@redhat.com>
2009-04-24 11:10:08 -07:00
Arun Sharma
b483ea3f0e Multilib support.
This is useful when packaging for multiple target architectures.

Signed-off-by: Jan Kratochvil <jan.kratochvil@redhat.com>
2009-04-13 12:00:31 -07:00
Arun Sharma
6aec15799d Fix ppc32 build.
Signed-off-by: Jan Kratochvil <jan.kratochvil@redhat.com>
2009-04-13 11:44:45 -07:00
Arun Sharma
40afb6667d Use a shorter path for include
This should've been a part of: 2fce54102c
2009-04-13 10:57:21 -07:00
Arun Sharma
aaed432328 Remove more autogenerated files. 2009-04-13 10:50:51 -07:00
Arun Sharma
2fce54102c Implement _Unwind_GetIPInfo() as required by the C++ ABI
Provide a special implementation for ia64, because the unwind
information is such that an IP adjustment is not necessary before
looking up unwind info.

Bad things happen if libunwind only provides parts of the ABI and
the rest come from libgcc.

Signed-off-by: Jan Kratochvil <jan.kratochvil@redhat.com>
2009-04-02 22:22:05 -07:00
Arun Sharma
18a0a81ffc Update the tag to -beta. 2009-03-18 15:33:27 -07:00
Arun Sharma
9607c6407c Fixup CONFIG_DEBUG_FRAME support. 2009-03-17 19:08:58 -07:00
Arun Sharma
1227c41d20 Disable C++ exception support by default on x86. 2009-03-16 21:57:08 -07:00
Arun Sharma
ec53de82ec [PATCH] Avoiding name conflict with the GNU-specific dprintf in stdio.h
Signed-off-by: Yang Zhang <yaaang@gmail.com>
2009-03-16 21:37:11 -07:00
Arun Sharma
ff0ae70cc3 Bad pointer validation for 32 bit x86.
This corresponds to commit 649f1fb344.

Signed-off-by: Paul Pluzhnikov <ppluzhnikov@google.com>
2009-03-16 21:34:49 -07:00
Arun Sharma
5822fca27a Enable Intel C++ compatibility only when C++ exceptions are enabled. 2009-03-16 21:34:49 -07:00
Arun Sharma
0bce5f0016 Remove auto generated files. 2009-03-16 21:34:49 -07:00
Arun Sharma
83cef8b8f5 Don't check C++ ABI when it's not enabled. 2009-03-16 21:34:49 -07:00
Arun Sharma
576b59e4b1 Verify that we don't call malloc when unwinding locally. 2009-03-16 21:34:48 -07:00
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