1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-11-18 22:07:38 +01:00
Commit graph

2852 commits

Author SHA1 Message Date
Arun Sharma
a83e96cc1c Some entries in /proc/<pid>/maps are not ELF files, so add check
in elf_map_image() to ensure mapped files have a valid ELF header.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
Signed-off-by: Arun Sharma <asharma@fb.com>
2011-01-23 17:55:55 -08:00
Zachary T Welch
5007f8c794 Improve ELF valid_object() helper
Ensures the ELF header version is valid.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2011-01-23 17:21:04 -08:00
Zachary T Welch
af88cab09f Use more convenience libraries
Eliminates obfuscating variables in favor of adding files directly
to library SOURCES.  Eliminates the need for EXTRA_DIST variable.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-29 11:29:01 -08:00
Zachary T Welch
ce847afb3b Build ELF convenience libraries
Rather than building the sources directly, create a library that
gets linked statically into libunwind.la and libunwind-$(arch).la.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-29 11:28:57 -08:00
Zachary T Welch
02dd6c468a Use noinst_HEADERS for distributing .h files
Header files should be listed in a HEADERS automake declaration
rather than in the SOURCES.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-29 11:28:54 -08:00
Zachary T Welch
9de666d141 Simplify DWARF source handling
Build DWARF source files into automake convenience libraries to
eliminate duplication in arch-dependent library build rules.
Adds a configure-time check to determine whether to use them.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-29 11:28:51 -08:00
Zachary T Welch
b07829bedd Simplify LIBRARIES and LTLIBRARIES automake rules
Use automake's '+=' to eliminate obfuscation.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-29 11:28:47 -08:00
Zachary T Welch
64a827603c Simplify libunwind_setjmp automake rules
Eliminate redundant listing of libunwind_setjmp source files by
using automake's '+=' operator.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-29 11:28:44 -08:00
Zachary T Welch
f7ed9c569b Improve top-level Makefile rules
Use automake's '+=' to simplify include_HEADERS rules.  Move most
EXTRA_DIST files to noinst_HEADERS, eliminating duplication of headers
listed by include_HEADERS.  Add MIPS and PPC32 headers that were not
being distributed previously.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-29 11:28:40 -08:00
Zachary T Welch
7e767a2838 Improve test LDADD settings.
Eliminates unused libraries from test program linking.  Substitutes
'$(top_builddir)' for '..' to clarify library locations.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-29 11:28:35 -08:00
Zachary T Welch
717239a936 Conditionalize -static-libcxa test
The -static-libcxa test only applies for the Intel compiler, but the
check could pass for some versions of GCC.  It would be accepted with
a warning in the past, but it produces an error with GCC 4.6.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-29 11:28:28 -08:00
Zachary T Welch
651e9bb4fd Add MAINTAINERCLEANFILES to Makefile.am files.
Ensures 'make maintainer-clean' removes files generated by autotools.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-08 09:06:09 -08:00
Zachary T Welch
3ac945b7ee Improve debug-frame configure option default
Ensure that --enable-debug-frame is set automatically when building
libunwind for an ARM target.  Other targets continue to have
--disable-debug-frame as the default setting.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-08 09:05:55 -08:00
Zachary T Welch
574873ca6e Improve configure check reporting.
Adds numerous AC_MSG_CHECKING and AC_MSG_RESULT pairings for
configuration tests that were previously unreported.  Relocates
the debug configuration to the same part of the file as the command
line option declaration for associative clarity.  Makes it easier
to confirm the resultant configuration matches original intentions.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-08 09:03:38 -08:00
Zachary T Welch
cf6a998796 Fix memory leak in ARM unw_create_addr_space()
Frees newly created address space memory in the event of a failure
caused by an endian mismatch.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-08 09:03:34 -08:00
Zachary T Welch
10afcf3896 Remove duplicate check for PTRACE_CONT
This symbol was being checked twice during configuration.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-08 09:03:30 -08:00
Zachary T Welch
c9e378b281 Add .gitignore file
Improves quality of 'git status'.  Use 'git ls-files -o' to see all
untracked files.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-11-08 09:03:24 -08:00
Zachary T Welch
92345bf752 Fix PTRACE_SINGLESTEP typo.
Use correct spelling of PTRACE_SINGLESTEP symbol, so test suite
coverage works as intended.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
2010-10-25 11:20:39 -07:00
Arun Sharma
982d590ddb Add Gtest-nomalloc.c to EXTRA_DIST so we pass "make check" 2010-08-04 15:11:19 -07:00
Sven Neumann
7909c71e5d [PATCH] Add files to EXTRA_DIST so that 'make dist' works again 2010-08-04 14:26:39 -07:00
Arun Sharma
99e60be5a4 Fix the page boundary crossing bug.
Signed-off-by: Jason Evans <jasone@canonware.com>
2010-06-08 14:44:07 -07:00
Konstantin Belousov
b3757e7792 Restore the linking when --enable-debug-frame is not specified 2010-05-29 01:07:40 +03:00
Arun Sharma
00aed9631b Add an experimental and optional frame chain unwinding for ARM
The environment variable UNW_ARM_UNWIND_METHOD controls the unwind method.

1 - debug_frame unwinding
2 - frame chain unwinding,
3 - 1 & 2 (default))

Signed-off-by: Andris Zeila <andris.zeila@accenture.com>
2010-05-26 19:28:44 -07:00
Arun Sharma
46e10c5abe Support .debug_frame based unwinding in _UPTi_find_unwind_table()
Signed-off-by: Andris Zeila <andris.zeila@accenture.com>
2010-05-26 19:25:41 -07:00
Arun Sharma
546463d1e7 Factor out and export dwarf_find_debug_frame() function
Signed-off-by: Andris Zeila <andris.zeila@accenture.com>
2010-05-26 19:21:30 -07:00
Konstantin Belousov
298e575f2c Fix freebsd build 2010-05-17 21:57:59 +03:00
Arun Sharma
8ee7b1762e Add ip argument to _UPTi_find_unwind_table.
Signed-off-by: Andris Zeila <andris.zeila@accenture.com>
2010-05-15 12:15:49 -07:00
Arun Sharma
1787a2fd28 Add path and pathlen arguments to tdep_get_elf_image()
Signed-off-by: Andris Zeila <andris.zeila@accenture.com>
2010-05-15 12:14:09 -07:00
Arun Sharma
b115ab645a Ignore separate debug files which contain a .gnu_debuglink section.
Current implementation fails to find separate debug symbols when
.gnu_debuglink is set to the same name of the target ELF basename
(e.g. "libc.so.6" for /lib/libc.so.6). This patch fixes this by ignoring
separate debug files that contain a .gnu_debuglink section.

It also fixes a small typo in a related Debug() line.

Signed-off-by: Andris Zeila <andris.zeila@accenture.com>
2010-05-15 11:57:35 -07:00
Arun Sharma
66b7335ff3 Adds missing register offsets for ARM
Signed-off-by: Andris Zeila <andris.zeila@accenture.com>
2010-05-15 11:56:37 -07:00
Konstantin Belousov
e1493dc011 Merge branch 'master' into freebsd 2010-05-03 17:59:50 +03:00
Arun Sharma
aa3bb307a3 Fix merge errors 2010-05-03 07:47:41 -07:00
Konstantin Belousov
c84005e9c8 Add unwind annotations for freebsd/x86 getcontext.S.
Rearrange the code to put the slow branch out of main body,
and pinch the fixed amount of stack space to be able to annotate
the code.
2010-05-02 17:06:24 +03:00
Konstantin Belousov
b73c618a31 Merge branch 'master' into freebsd 2010-05-02 16:29:02 +03:00
Arun Sharma
0176c4f723 Merge commit 'fdc534ccb05d1e6c0438345d292203343a811701' 2010-04-28 17:27:38 -07:00
Arun Sharma
fdc534ccb0 Silence a compiler warning 2010-04-28 16:38:27 -07:00
Arun Sharma
215afa30b7 Add unwind descriptors to getcontext.S 2010-04-28 16:32:30 -07:00
Arun Sharma
c140d8598d Undo commit f252f5ff4e for now.
Seems to introduce a couple of test breakages.
2010-04-25 09:44:59 -07:00
Arun Sharma
d3c4bc4295 Fix a compiler warning 2010-04-25 09:24:40 -07:00
Lassi Tuura
045c55b2a2 Be conservative in all pointer derefrences by default.
Since most people can't completely control their compile or runtime
environment, it becomes hard to ensure that unwind data is perfect.
2010-04-24 19:24:49 -07:00
Lassi Tuura
d4fbc8326a Detect end of stack in x86-64 rbp-based walk. 2010-04-24 19:22:08 -07:00
Lassi Tuura
92cc7fd78a Remove obsolete code for 'old way' of handling x86-64 signal frames. 2010-04-24 19:21:52 -07:00
Lassi Tuura
f252f5ff4e Recognise and unwind through PLT. 2010-04-24 19:21:26 -07:00
Lassi Tuura
a9dce3c06e During the stack unwinding process, the return address points to
the instruction after the call for a normal frame. libunwind uses
IP-1 to lookup unwind information. However, this is not necessary for
interrupted frames such as signal frames (or interrupt frames) in
the kernel context.

This patch handles both cases correctly.

Based on work by Mark Wielaard <mwielaard@redhat.com>
2010-04-24 19:16:09 -07:00
Lassi Tuura
4c553ceb2c Identify end-of-stack by undefined return address location. 2010-04-24 17:18:31 -07:00
Lassi Tuura
dac2d001af Identify signal frames by augmentation attribute. 2010-04-24 17:18:26 -07:00
Lassi Tuura
250382c56d Use wider format when printing addresses in debug format. 2010-04-24 17:18:19 -07:00
Konstantin Belousov
58f290e1ce Add config.h. 2010-04-21 15:43:05 +03:00
Konstantin Belousov
2709abc883 msync() also may be called on unaligned address. 2010-04-21 15:33:37 +03:00
Konstantin Belousov
4454413242 Account for possible unaligned access. 2010-04-21 15:18:02 +03:00