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

2669 commits

Author SHA1 Message Date
Ken Werner
fb325c895e ARM extbl cleanup.
Move code that does not necessarily need to reside in the ex_tables.h header
file into ex_tables.c. Add comments and remove unused code.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
2011-03-24 20:44:25 -07:00
Ken Werner
6e25c11505 Remove the arm-extbl-test.
This test case relies on old libunwind internals such as the arm_stackframe.
Since the ARM extbtl-parser now operates on the DWARF model directly the
arm-extbl-test isn't of any particular use anymore.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
2011-03-24 20:42:01 -07:00
Ken Werner
cf8d5e41af Have the ARM extbtl-parser operate on the DWARF model directly.
This eliminates the arm_stackframe and therefore the need to synchronize the
two models. It also clears the way for unwinding call stacks with mixed
DWARF- and extbl-frames.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
2011-03-24 20:42:00 -07:00
Konstantin Belousov
04fc88fa31 Fix build and distribution on the FreeBSD.
Signed-off-by: Konstantin Belousov <kostikbel@gmail.com>
2011-03-24 20:41:07 -07:00
Arun Sharma
0613d4c680 Fixup trailing whitespace
Signed-off-by: Arun Sharma <asharma@fb.com>
2011-03-22 08:40:49 -07:00
Arun Sharma
57695518b3 Replace libuwind-elf32.la with $(LIBUNWIND_ELF)
This was needed to fix build errors on x86_64.

Signed-off-by: Arun Sharma <asharma@fb.com>
2011-03-22 08:34:33 -07:00
Zachary T Welch
4870386087 Add test of backtracing using ARM-specific tables
Uses .ARM.exidx and .ARM.extbl sections to produce a backtrace.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
2011-03-22 08:15:03 -07:00
Zachary T Welch
6a67154674 Use ARM-specific unwinding tables in unw_step
Uses ex_tables routines to provide a new means of unwinding the stack.
Set UNW_ARM_UNWIND_METHOD=4 to use ARM-specific unwinding tables.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
2011-03-22 08:14:58 -07:00
Zachary T Welch
ffc474b8c8 Add module for parsing ARM-specific unwind tables
Handles lookup, extracting unwind entries, and decoding the entry
using a callback mechanism.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
2011-03-22 08:14:51 -07:00
Zachary T Welch
049e2ba1b9 Add ARM signal frame detection
Implements a check for call to sigreturn that the kernel will have
setup before jumping to the signal handler.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
2011-03-22 08:14:45 -07:00
Zachary T Welch
6a072982dd Fix file descriptor leakage in maps_init
If mmap fails, be sure to close the maps file before returning an error.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
Signed-off-by: Ken Werner <ken.werner@linaro.org>
2011-03-07 21:24:51 -08:00
Zachary T Welch
13cd3b0c26 Fix test-ptrace argument parsing.
Avoids an endless loop when passing unknown options.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
Signed-off-by: Ken Werner <ken.werner@linaro.org>
2011-03-07 21:24:51 -08:00
Ken Werner
4a89b88fd3 Link libunwind-setjmp against libunwind-elf.
This prevents the linker from complaining about a missing symbol when
building the test-setjmp test case.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
2011-03-07 21:24:51 -08:00
Ken Werner
ec633a1911 Use UNW_OBJ instead of UNWI_ARCH_OBJ to rename unwi_unwind_method on ARM.
This results in different unwi_unwind_method symbol names for the local and
generic versions. It allows to statically link against both libraries.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
2011-03-07 21:24:51 -08:00
Ken Werner
c2cc122a62 Explicitly add dependent shared libraries.
This adds support for linkers that do not pull in the dependent shared
libraries of libunwind-$(arch).la and libunwind-setjmp.la implicitly.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
2011-03-07 21:24:50 -08:00
Arun Sharma
516304a557 Revert "Use more convenience libraries"
Breaks make check on both x86 (32 and 64 bit)

This reverts commit af88cab09f.
2011-02-01 20:37:25 -08:00
Arun Sharma
c0a9d0c7c1 Fix the mismatch between the macro parameter and the name used in the body.
Thanks to David Lee <live4thee@gmail.com> for noticing.
2011-01-23 18:06:51 -08:00
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