Konstantin Belousov
752ce15c4f
Preliminary version of freebsd syscall unwinder
2010-03-08 19:45:54 +02:00
Konstantin Belousov
c1b1c10cfc
Fix memory leak on error
2010-03-08 18:48:27 +02:00
Konstantin Belousov
4b3ca293bf
Fix PT_SYSCALL ignoring of ip
2010-03-08 17:01:31 +02:00
Konstantin Belousov
89e1df2d32
Fix _UI_siglongjmp_cont name
2010-03-08 15:55:29 +02:00
Konstantin Belousov
0f1c0f5f66
Fix resume.
2010-03-08 15:51:39 +02:00
Konstantin Belousov
43ed5b3e56
Add required assembler magic.
2010-03-08 00:57:50 +02:00
Konstantin Belousov
5f5b1a5daa
tdep_get_elf_image should be public
2010-03-08 00:52:26 +02:00
Konstantin Belousov
ad932154a6
Port test-ptrace
2010-03-08 00:50:50 +02:00
Konstantin Belousov
093855f12a
Remove unneeded includes of sys/types.h
2010-03-08 00:25:22 +02:00
Konstantin Belousov
64b5391b7b
Include sys/types.h once
2010-03-08 00:24:32 +02:00
Konstantin Belousov
da357e3c2e
Revert "sys/types.h"
...
This reverts commit 5976f1a5b3
.
2010-03-08 00:20:23 +02:00
Konstantin Belousov
53095e6b3e
Code for resume
2010-03-07 23:43:07 +02:00
Konstantin Belousov
c64723835c
Support walk over freebsd sigframes
2010-03-07 21:53:01 +02:00
Konstantin Belousov
d0d5f9979b
Correct rsp offset
2010-03-07 21:20:43 +02:00
Konstantin Belousov
efd0655ff4
Silence warning about symbol redefinition.
2010-03-07 17:27:41 +02:00
Konstantin Belousov
59d38aaccd
Properly handle -ldl and -lutil
2010-03-07 12:46:05 +02:00
Konstantin Belousov
d7eea91448
Cast caddr_t argument for ptrace
2010-03-07 12:27:03 +02:00
Konstantin Belousov
200147d0f2
Handle fpu state
2010-03-06 23:22:46 +02:00
Konstantin Belousov
62218e10eb
Provide proper offsets for gregs in freebsd ucontext. Note that fp regs are not handled.
2010-03-06 22:33:11 +02:00
Konstantin Belousov
63ae8ca894
Correct assignments, remove unneeded includes.
2010-03-06 22:32:11 +02:00
Konstantin Belousov
4de09a9c15
Implement freebsd-specific vm walker.
2010-03-06 18:53:27 +02:00
Konstantin Belousov
81f2de0083
Add implementation of unw_is_signal_frame for freebsd.
2010-03-06 18:08:44 +02:00
Konstantin Belousov
1ba7599250
Add FreeBSD stub.
2010-03-06 17:54:51 +02:00
Konstantin Belousov
2646e0fde8
Add freebsd stub
2010-03-06 17:51:00 +02:00
Konstantin Belousov
5976f1a5b3
sys/types.h
2010-03-06 17:47:26 +02:00
Konstantin Belousov
d7f5141075
MAP_ANONYMOUS
2010-03-06 16:46:52 +02:00
Konstantin Belousov
3eabce18b1
Include sys/types.h when needed.
2010-03-06 16:43:39 +02:00
Konstantin Belousov
29c110265f
_NSIG.
2010-03-06 16:43:18 +02:00
Konstantin Belousov
c7ffca11ae
FreeBSD way to name registers.
2010-03-06 16:35:32 +02:00
Konstantin Belousov
8ccebc9307
MAP_ANONYMOUS
2010-03-06 16:23:24 +02:00
Konstantin Belousov
78cb28b4a6
PT_CONTINUE.
2010-03-06 16:20:47 +02:00
Konstantin Belousov
d4a4ddd23d
Provide access to the general regs on FreeBSD.
2010-03-06 16:17:21 +02:00
Konstantin Belousov
cf6ae3548f
Code to read/write user memory on FreeBSD
2010-03-06 15:04:56 +02:00
Konstantin Belousov
d11456ffbf
Code to read/write fpregs on FreeBSD
2010-03-06 14:55:11 +02:00
Konstantin Belousov
905034ce72
Initial attempt at the build infrastructure for FreeBSD.
2010-03-06 00:41:37 +02:00
Arun Sharma
46ea10680d
Update documentation on building from git
2010-03-02 21:18:57 -08:00
Arun Sharma
3468a6b33d
Change MS_SYNC to MS_ASYNC
...
Hopefully this makes the address validation a bit cheaper.
2010-02-23 10:35:47 -08:00
Stefan Demharter
752076789f
Be gcc compatible for C++ exceptions on 32 bit platforms.
2010-02-21 22:45:08 -08:00
Arun Sharma
5a1d3c6fd7
Remove bogus check on scan_string which is guaranteed to fail every time.
2010-02-21 22:35:26 -08:00
Paul Pluzhnikov
54752e0df0
Implement getcontext for x86
...
Greetings,
Attached patch implements getcontext for x86.
Motivation is the same as:
http://lists.nongnu.org/archive/html/libunwind-devel/2008-06/msg00009.html
This also fixes check-name-space on x86.
Tested on Linux/86 with no new failures.
Thanks,
--
Paul Pluzhnikov
2009-12-23 09:59:52 -08:00
Paul Pluzhnikov
0cf76ed0b5
Check for NULL when validating addresses
...
This is rather on the obvious side.
While doing strace on an executable using libunwind, I noticed a
lot of:
msync(0, 1, MS_SYNC) = -1 ENOMEM (Cannot allocate memory)
Since we know that the first page isn't mapped (or at least doesn't
contain the data we are looking for), we can eliminate all such
msync calls.
Tested on Linux/x86_64 with no regressions.
2009-12-01 13:59:45 -08:00
Paul Pluzhnikov
9626d66019
Fix a race condition in dwarf unwinding.
...
Original code was accessing rs_cache memory without holding a lock
in some cases. If there was sufficient cache pressure, entry being
accessed may be overwritten by another thread, resulting in a data
race.
We now make a thread local copy of the data, before releasing the
lock. If we end up supporting UNW_CACHE_PER_THREAD properly
in the future, this memcpy should be unnecessary.
2009-11-24 15:18:48 -08:00
Paul Pluzhnikov
890a630d76
Fix tests/Gtest-concurrent.c to test all caching policies
...
Greetings,
Attached patch is rather on the obvious side: setting caching policy and
than doing nothing is pointless; we'd better acutally test that it works!
Tested on Linux/x86_64.
Thanks,
--
Paul Pluzhnikov
2009-11-24 11:12:49 -08:00
Paul Pluzhnikov
2648a77f04
Simplify control flow
...
Greetings,
Attached patch gets rid of additional unnecessary branch (rs_get_cache
can not return NULL unless caching_policy is UNW_CACHE_NONE), gets rid of
goto's, and makes apply_reg_state (major CPU consumer) execute with cache
lock not held (before the patch, apply_reg_state was called with lock held
for newly-inserted entries, but not for found-in-cache entries).
Tested on Linux/x86_64 with no regressions.
Thanks,
--
Paul Pluzhnikov
2009-11-20 12:04:13 -08:00
Paul Pluzhnikov
f958b9dc4f
Get rid of some bogus checks.
...
Greetings,
Attached patch is rather on the obvious side:
- rs1 can't be NULL since it's assigned on previous line
- rs_new never returns NULL, and if it ever did, we'd crash on memcpy that
preceeds the NULL check.
Tested on Linux/x86_64 with no regressions.
Thanks,
--
Paul Pluzhnikov
2009-11-20 11:40:05 -08:00
Arun Sharma
f88e949d16
Set UNW_TDEP_SP on x86 to ESP
...
This is similar to what has been done on other archs and resolves an out of
bounds array access elsewhere.
2009-11-11 21:58:15 -08:00
Arun Sharma
d7089547e2
Fix a warning message on i386
...
Without this, we may be accessing data beyond the array bounds.
2009-10-23 22:38:11 -07:00
Arun Sharma
3067acf172
Remove duplicate calls to mark_as_used
2009-10-17 22:45:30 -07:00
Arun Sharma
4ab26bcdaa
Fix compiler warnings seen with --disable_block_signals
2009-10-16 15:52:44 -07:00
Belisko Marek
570c09a2af
Fix another compiler warning.
2009-10-16 14:26:55 -07:00