2004/12/02 18:37:47-08:00 hp.com!davidm
(unw_tdep_fpreg_t): Make it a union of "double" and two 32-bit words.
(unw_tdep_getcontext): Fix typo.
2004/12/02 00:40:45-08:00 mostang.com!davidm
(_U_TDEP_QP_TRUE): New macro.
(UNW_TDEP_CURSOR_LEN): Increase from 127 to 511 to accommodate
DWARF cursor-size.
(unw_word_t): Change from uint64_t to uint32_t since user-land
PA-Linux is only 32 bits.
(hppa_regnum_t): Add register names UNW_HPPA_EH0, UNW_HPPA_EH1,
UNW_HPPA_EH2, UNW_HPPA_EH3, UNW_HPPA_CFA, and
UNW_HPPA_EH.
(UNW_TDEP_NUM_EH_REGS): New macro.
(unw_tdep_getcontext): Point it at UNW_ARCH_OBJ(getcontext).
(Logical change 1.290)
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