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

442 commits

Author SHA1 Message Date
Tommi Rantala aeb1afc65d Call `unw_backtrace()' explicitly in test-flush-cache.c 2012-09-28 14:50:03 +03:00
Tommi Rantala 643fc92e91 Rename rs-race' to Lrs-race'
Only build a "local-only" version of `rs-race'. The "generic" build is
not very entertaining, as the `unw_set_caching_policy()' calls
manipulate the `unw_local_addr_space' in libunwind-$arch.so, while the
`backtrace()' calls use the address space object from libunwind.so
behind the scenes.
2012-09-28 14:50:03 +03:00
Tommi Rantala 0d7738ed4f Cleanup dynamically allocated memory before exit in tests
Cleanup dynamically allocated memory before exit in tests in a few
places where missing. While such cleanups right before exit do not
usually make much sense (as the operating system would cleanup anyway,
so manual cleanups only burn CPU cycles), we will want to catch any
potential problems in libunwind related to the cleanups. This also stops
valgrind complaining about unreleased memory.
2012-09-28 14:50:02 +03:00
Tommi Rantala 438d9de675 Remove unneeded `config.h' inclusion in Gtest-nomalloc 2012-09-28 14:50:02 +03:00
Tommi Rantala be230add88 Rename test-varargs' to Ltest-varargs'
This testcase only uses the local-only `unw_backtrace()' from libunwind,
and a "generic" build of this test case would not be interesting.
2012-09-28 14:50:02 +03:00
Tommi Rantala 939a5e195e Annotate potentially unused variable in tests/test-coredump-unwind.c
tests/test-coredump-unwind.c: In function 'handle_sigsegv':
test-coredump-unwind.c:216:15: warning: variable 'uc' set but not used [-Wunused-but-set-variable]
2012-09-28 14:06:07 +03:00
Tommi Rantala 7673df21ff Annotate potentially unused variable in tests/Gtest-trace.c
tests/Gtest-trace.c: In function 'sighandler':
tests/Gtest-trace.c:179:15: warning: unused variable 'uc' [-Wunused-variable]
2012-09-28 14:06:07 +03:00
Tommi Rantala 0c838c4d44 Annotate potentially unused variable in tests/Gtest-bt.c
tests/Gtest-bt.c: In function 'sighandler':
tests/Gtest-bt.c:158:15: warning: unused variable 'uc' [-Wunused-variable]
2012-09-28 14:06:07 +03:00
Tommi Rantala 23fdda6a28 Workaround volatileness warning in tests/ia64-test-setjmp.c
tests/ia64-test-setjmp.c:76: warning: function return types not compatible due to 'volatile'
2012-09-28 14:06:07 +03:00
Tommi Rantala 074e328d46 Avoid -Wunused-value warning in tests/Gia64-test-stack.c
tests/Gia64-test-stack.c: In function 'do_unwind_tests':
tests/Gia64-test-stack.c:91: warning: value computed is not used
2012-09-28 14:06:07 +03:00
Tommi Rantala 68b20804e4 Clear out `ip' to avoid -Wuninitialized warning in tests/test-coredump-unwind.c
This one is for architectures that we have not specifically added
support for in `tests/test-coredump-unwind.c'.

tests/test-coredump-unwind.c: In function 'handle_sigsegv':
test-coredump-unwind.c:238:10: warning: 'ip' is used uninitialized in this function [-Wuninitialized]
2012-09-28 14:06:07 +03:00
Tommi Rantala d3fd3dc3ca Default to non-verbose mode in Ltest-cxx-exceptions 2012-09-28 14:06:07 +03:00
Konstantin Belousov 80e852cb38 Do not allow the reference to the local var to outlive the local var scope. 2012-09-21 23:06:24 -07:00
Cody P Schafer b45c27b6ee ppc64: remove tests/ppc64-test-wchar
It is not clear what is special about wchar on PPC64, and no one can
remember why this was added.

Removing.
2012-09-15 10:47:42 -07:00
Cody P Schafer 3a5d7ff694 build: make libunwind-coredump build optional
Disable the building of libunwind-coredump except on x86_64 and x86
(where implimentations exsist).

Allow overriding of this autodetection via --enable-coredump and
--disable-coredump.
2012-09-15 10:47:42 -07:00
Tommi Rantala 1c1dbbe296 Do not print garbage proc info in tests/Gtest-bt.c
Check the return value of the unw_get_proc_info() call to avoid printing
garbage if the call fails.
2012-09-04 14:58:38 +03:00
Tommi Rantala 8203c955c8 Change test-varargs to check libunwind backtracing
test-varargs is checking how `backtrace()' provided by the system
behaves when varargs are used. Let's make the test more useful by
changing it to test the `backtrace()' provided by libunwind.

Change the testcase to return 0/1 for success/failure, and add it to the
set of checks, so that it gets run on `make check'. Also call
`unw_backtrace()' explicitly so that we do not need to bother with
`execinfo.h' and `backtrace()' prototype.
2012-09-04 14:58:38 +03:00
Tommi Rantala ffbe29940e Check correct variable for offset in tests/Gtest-init.cxx
Checking `off' for positiveness does not make any sense, check `offset'
instead.
2012-09-04 14:58:37 +03:00
Tommi Rantala 6470a67461 Rename backtrace' to do_backtrace' in tests/Gtest-init.cxx
Rename `backtrace' to `do_backtrace' in tests/Gtest-init.cxx for sanity;
the `backtrace' name is already defined in various other places.
2012-09-04 14:58:37 +03:00
Tommi Rantala aed6c8b994 Check __builtin___clear_cache() at configuration time
Fixup commit 39b83981 ("Flush icache with __builtin___clear_cache() in
tests when compiling with GCC") to fix compilation with older GCC
versions that do not provide __builtin___clear_cache().
2012-09-04 13:26:13 +03:00
Tommi Rantala 39b8398159 Flush icache with __builtin___clear_cache() in tests when compiling with GCC
When compiling with GCC, use the builtin instruction cache flushing
mechanism in all tests where it is needed.

Quoting GCC docs: ''If the target does not require instruction cache
flushes, __builtin___clear_cache has no effect. Otherwise either
instructions are emitted in-line to clear the instruction cache or a
call to the __clear_cache function in libgcc is made.''.
2012-08-21 22:33:56 +03:00
Tommi Rantala 5fedf3407c Avoid -Wunused-value warning in tests/Gtest-exc.c
Gtest-exc.c: In function 'a':
Gtest-exc.c💯15: warning: value computed is not used [-Wunused-value]
2012-08-21 22:33:56 +03:00
Tommi Rantala 5b55e556ca test-resume-sig-rt: test unw_resume() in presence of "realtime" signal frame
Introduce a new test case that is derived from test-resume-sig, but
using the SA_SIGINFO sigaction() flag. This case is referred in the
linux kernel sources as "realtime" signal handler, and is handled
differently in the kernel on many architectures and in libunwind as
well.
2012-08-21 22:33:56 +03:00
Tommi Rantala ff0c6ccf6b Remove unneeded length modifier from suppressed match in sscanf() format in tests/crasher.c
GCC is complaining about the `%*jx' match in sscanf() format string.
Replace it with `%*x'; sscanf() will identically match an unsigned
hexadecimal integer without the length modifier.

crasher.c: In function 'write_maps':
crasher.c:30:9: warning: use of assignment suppression and length modifier together in gnu_scanf format [-Wformat]
2012-08-21 22:30:47 +03:00
Tommi Rantala 9a6d921230 Fix plain return from main() in tests/test-async-sig.c
test-async-sig.c: In function 'main':
test-async-sig.c:185:4: warning: 'return' with no value, in function returning non-void [-Wreturn-type]
2012-08-21 22:30:46 +03:00
Tommi Rantala 56f07a8e55 Stop using nonportable echo arguments in tests
echo arguments are not portable, so use printf when we need to print
tabs or newlines.
2012-08-21 22:30:46 +03:00
Tommi Rantala f42a8de0fa Annotate unused parameters in tests
Compiling the tests with -Wextra results to lots of warnings for unused
parameters. Annotate these cases with the `unused' attribute to avoid
the warnings.
2012-08-21 22:30:46 +03:00
Tommi Rantala 47a99b6f00 Eliminate unused parameters in tests 2012-08-21 22:30:41 +03:00
Tommi Rantala 6f374ccb5a Ignore _fbss, _fdata, _ftext and _gp symbols on MIPS 2012-08-20 08:46:47 +03:00
Tommi Rantala a63c209fed Add PPC namespace checking
PPC is the only architecture that has the get_func_addr() symbol
exported, so add specific checks for this architecture.
2012-08-20 08:46:46 +03:00
Arun Sharma 201bb8733d Use libtool to build libunwind-ptrace 2012-08-18 12:41:21 -07:00
Konstantin Belousov 04c77cced4 Fix for test suite build in the separate directory.
Avoid manually coding the rule to build crasher, instead fuddle
the compiler so that even -O2 optimization does not eliminate call
to b().

First, put calls to both a() and b() in the b() into non-tail-recursive
position. Second, as recommended in gcc manual, use asm volatile("");
to prevent further prevent inlining, besides attribute((noinline).
And third, call b() by alias, which current gcc optimizer cannot see
through.

Also, do not dereference NULL in a, and mark the memory access as volatile.
[ Minor portability improvements: asharma@fb.com ]
2012-08-11 22:02:55 -07:00
Arun Sharma 538f63d796 Fix test-ptrace in automated mode
Tested via:
./test-ptrace
./test-ptrace -v /bin/ls /usr
2012-08-11 21:21:54 -07:00
Martin Milata 4ab9e5dd10 MiniDebugInfo test: tests/run-coredump-unwind-mdi
Test that creates MiniDebugInfo-containing binary and then checks if it
can recover the procedure names from its coredump.

Signed-off-by: Martin Milata <mmilata@redhat.com>
2012-08-10 15:29:03 +02:00
Martin Milata 2dbc26dde8 Make coredump test also test unw_get_proc_name
Signed-off-by: Martin Milata <mmilata@redhat.com>
2012-08-08 13:54:05 +02:00
Arun Sharma 707b1dba99 Fix a SIGSEGV in test-ptrace.c
./test-ptrace -v resulted in a SIGSEGV.
2012-08-04 18:06:07 -07:00
Arun Sharma 32202619c4 Fix a test failure
The test contains hints to users of unw_backtrace() and friends
on how to ensure correctness in a multi-threaded program
2012-08-04 17:58:24 -07:00
Arun Sharma 814bd79fb1 Fix some compiler warnings 2012-08-04 12:48:56 -07:00
Tommi Rantala 4bf1b71952 Use unw_context_t instead of ucontext_t in tests/Gtest-trace.c and tests/Gtest-bt.c
At least on ARM unw_context_t and ucontext_t are not the same types, so
use unw_context_t.

See also commit 24112f6d9b ("Fix some test
failures on x86_64 on distros with small default stacks.")

Gtest-trace.c: In function 'do_backtrace':
Gtest-trace.c:66:3: warning: initialization from incompatible pointer type [enabled by default]
Gtest-trace.c:67:3: warning: passing argument 2 of '_Uarm_init_local' from incompatible pointer type [enabled by default]
../include/libunwind-common.h:239:1: note: expected 'struct unw_context_t *' but argument is of type 'struct ucontext_t *'

Gtest-bt.c: In function 'do_backtrace':
Gtest-bt.c:65:3: warning: initialization from incompatible pointer type [enabled by default]
Gtest-bt.c:66:3: warning: passing argument 2 of '_Uarm_init_local' from incompatible pointer type [enabled by default]
../include/libunwind-common.h:239:1: note: expected 'struct unw_context_t *' but argument is of type 'struct ucontext_t *'
2012-07-31 16:21:15 +03:00
Tommi Rantala 9158e522db Fix IP vs. PC confusion in tests on ARM
The intention in the test cases is to print the "instruction pointer"
value at certain places, and on ARM we will want to get the Program
Counter in these cases. IP is a scratch register, and not very
interesting.
2012-07-31 16:21:15 +03:00
Tommi Rantala a06f189baf Rip out AC_TYPE_SIGNAL and sighandler_t check
AC_TYPE_SIGNAL is an obsolete autoconf macro, and we were not using
sighandler_t or RETSIGTYPE for anything anyways.
2012-07-31 15:01:02 +03:00
Martin Milata de28c51e63 Build libunwind-coredump using libtool
So that it builds shared/pic library that can be linked with other
libraries.

Signed-off-by: Martin Milata <mmilata@redhat.com>
2012-07-04 17:01:44 -07:00
Konstantin Belousov 0f6c8313b7 Port crasher to FreeBSD. 2012-06-23 11:39:18 -07:00
Martin Milata 0f9a540c8c coredump: add test
Program test-coredump-unwind was modified to map backing files based on
virtual addresses instead of segment numbers.

The crasher.c is a program that essentially calls some functions and
then writes to invalid address causing a crash. Before that, it detects
which executables are mapped to which virtual addresses and writes this
information to a file suitable for consumption by test-coredump-unwind.
The mapping information is obtained form /proc/self/maps, so currently
it only works on linux.

The test itself is a shell script, which first runs the program and then
runs test-coredump-unwind on the resulting core and address space
map file to check whether the stack trace obtained from the dump roughly
corresponds to what it should look like.

Signed-off-by: Martin Milata <mmilata@redhat.com>
2012-05-31 11:00:40 +02:00
Konstantin Belousov 61a173763e Fix test build on FreeBSD. 2012-05-24 12:45:23 +03:00
Martin Milata d93d96ad83 Fix compilation on IA64
- Add tdep macro for {dwarf,ia64}_find_unwind_table so that ia64
   doesn't try to use dwarf code.
 - Fix extraneous #if.
 - Fix mistyped filename in Makefile.am.
 - Link ia64-specific tests with correct libraries.

Signed-off-by: Martin Milata <mmilata@redhat.com>
2012-05-23 20:52:28 -07:00
Arun Sharma 46dfe3ecf5 Fixup whitespace in Makefile. 2012-03-14 17:20:58 -07:00
Arun Sharma 7e5d2791f9 Update namespace checks for dwarf_find_unwind_tables 2012-03-12 20:11:49 -07:00
Arun Sharma 6da4dde70e Compile fix for platforms other than linux-i386 2012-03-12 20:11:49 -07:00
Arun Sharma f0bb806ecb Move the test case to tests dir. 2012-03-12 20:11:49 -07:00