Bert Wesarg
57257060c9
Bring back support for UNW_CACHE_PER_THREAD.
...
Needs to be build with --enable-per-thread-cache. Default caching policy
is also UNW_CACHE_PER_THREAD than.
2017-08-15 10:34:28 -07:00
Doug Moore
23c3f24ea6
On aarch64, it is the X30 register, not the PC register, that is associated with the program counter.
2017-08-07 09:05:34 -07:00
Doug Moore
e360c3ddbd
For architectures that initialize the dwarf ip cache, but do not
...
update when the ip register is set, add those updates.
2017-08-07 09:05:17 -07:00
Doug Moore
27f5f9fa0b
Leave ret_addr_column out of the data that gets copied when pushing/popping
...
data on/off the register state stack.
2017-05-20 14:36:25 -05:00
Doug Moore
c66661f73c
Drop reference to dwarf.ret_addr_column.
2017-05-19 19:19:12 -05:00
Doug Moore
f3be411bc8
Use the register_state version of ret_addr_column, rather than the
...
cursor version, for frame-stashing. They have the same value in master.
2017-05-19 18:22:08 -05:00
Doug Moore
028a60f064
Change dwarf_reg_state from an array of pairs of differently-sized objects
...
to a pair of arrays, to reduce internal fragmentation. Reduces storage
use by 37.5% on x86_64.
2017-05-16 17:40:58 -05:00
Doug Moore
502ba27753
Add a function to capture the dwarf_reg_states that occur in processing
...
the dwarf code for a procedure, and a function to apply a captured
dwarf_reg_state later.
2017-05-12 22:24:00 -05:00
Doug Moore
14c48b3d51
unw_init_local_signal
...
init_local, but *not* setting use_prev_instr.
This is necessary to correctly unwind using ucontext argument to signal handlers.
2017-04-03 14:44:40 -07:00
Chris Redmon
cf2bc87561
Fixup invalid return code checks of unw_is_signal_frame()
...
unw_is_signal_frame() returns <= 0 if not a signal frame. Several places in
code were only checking for a "if (unw_is_signal_frame())", or
"if (!unw_is_signal_frame())".
2017-01-13 08:27:40 -08:00
Victor Kamensky
16e98c8cf3
aarch64: fix wrong big_endian flag in aarch64_be case
...
Set local_addr_space.big_endian flag according to current target
endianness. Before it was set by memset to 0, which corresponds
to little endian and it worked perfectly fine for aarch64.
But it breaks aarch64_be because dwarf_readu16, dwarf_readu32,
etc functions do not read values correctly since they operate
with wrong idea about current target endianness.
Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
2014-12-03 23:28:07 -08:00
C. Bergström
3babc1d148
aarch64: Restore x0, x1, x2 and x3
...
These registers contain the exception pointer and selector.
2014-10-24 22:40:19 -07:00
Arun Sharma
781d5d5263
One time whitespace fixup.
...
for f in $(find src include -name '*.[ch]'); do
expand -t 8 $f > $tmp; mv $tmp $f;
done
2014-09-27 09:47:23 -07:00
Filip Nyback
93d8272481
Add fast stack trace on AArch64.
...
Port of the fast stack trace feature to AArch64.
2014-07-30 14:34:31 +03:00
Christopher Ferris
2cb00c1eac
AARCH64: Change Debug calls to use %lx instead of %x.
...
The attached patch simply modifies the Debug statements for aarch64 to use
%lx instead of %x. Tested by compiling for aarch64 using a cross-compiler.
Signed-off-by: Christopher Ferris <cferris@google.com>
2014-03-07 22:52:24 -08:00
Yvan Roux
ac6c0a6535
[PATCH] AArch64 port.
2013-05-11 09:20:28 -06:00