real-time signal frames).
(tdep_big_endian): Fix typo.
2004/12/02 00:40:45-08:00 mostang.com!davidm
Include "elf32.h" and "dwarf.h".
(struct unw_addr_space): If we have atomic-ops, define cache_generation
to be of type AO_t.
(struct cursor): Define it primarily in terms of the DWARF cursor.
Add sigcontext_format and sigcontext_addr members.
Add DWARF-location accessors.
(Logical change 1.290)
2004/10/19 23:15:02-07:00 mostang.com!davidm
(update_frame_state): Take additional argument "prev_cfa".
When we detect a NULL-frame, debug-print the IP and the CFA
so we know where things went wrong.
(dwarf_step): Get "prev_cfa" before we call dwarf_find_save_locs(),
since update_frame_state() doesn't actually update
the CFA.
(Logical change 1.290)
(pick): Likewise.
(dwarf_eval_expr): Fix "while" conditional so we see all operators.
Fix DW_OP_litN typo: "opcode = DW_OP_lit0" to
"opcode - DW_OP_lit0".
Add lots of Debug() statements so we can see what's going
on. Debug level 15 will show just entry/return values.
Debug level 16 shows all operators.
(Logical change 1.290)
The rationale for this fix is as follows: for the ALIAS directive, RLEN
specifies the number if instructions for which the region behaves like
the aliased code. For example, if RLEN=1 then the code follows the
aliased region for 1 instruction and the valid WHEN values should be 0
and 1. However, with the unpatched code, we would have allowed for -1
and 0, which is wrong.
BKrev: 4266c3228pjJqd72q34L-r8z1RXTaA
x86 and ia64 and checking for it causes a dependency for libunwind
on libatomic_ops.so, which is not what we want.
BKrev: 419a79184TRq3PRIZ_E7yRe9-x4WXQ
_U_dyn_info_list_addr as weak and fail if the symbol remained
undefined.
(get_static_proc_name): Likewise for _Uelf64_get_proc_name().
(Logical change 1.282)
full-path archive library names. Instead, we need to use -lgcc
(and hope that GCC doesn't pick up the dynamically-linked version!).
Longer term, a better solution might be to drop the -nostdlib linker
option and to use --as-needed instead to avoid recursive references
to -lunwind.
BKrev: 418ac8fcBr462ajbr1zenCtVWTgv5Q
With GCC, link libunwind.so against libgcc.a so there are no C
runtime-system dependencies left (such as calls to __divdi3).
BKrev: 418952a0RqjKsE7N_2NLSqJn3pvfFQ
a /proc/PID/maps file contains a mapping of something other than
a regular file. Reported and fix proposed by Todd L. Miller.
BKrev: 4189352chQs0340NbHL2qDV4yTL3_A
Include <errno.h>.
Include <ia64intrin.h> if we have it.
(get_bsp): New function.
(doit): Use get_bsp() instead of __builtin_ia64_bsp().
(main): Replace %m with %s/strerror(errno).
(Logical change 1.277)
bad unwind info (all but the first sp-restorers fail to get marked with a
".restore sp" directive; see GCC bugzilla report #18010).
BKrev: 416fd5365xn1-FZs2rUwq7kv7MNyGQ