1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-11-26 09:07:38 +01:00

(update_frame_state): On HP-UX, catch ucontext_t location from r32.

(Logical change 1.77)
This commit is contained in:
mostang.com!davidm 2003-04-08 21:14:16 +00:00
parent fb293ae33d
commit 60b8811527

View file

@ -110,7 +110,17 @@ update_frame_state (struct cursor *c)
num_regs = 0; num_regs = 0;
if (c->is_signal_frame) if (c->is_signal_frame)
{ {
/* Caveat: #ifdef __hpux is wrong here. The code below is just
a placeholder until HP-UX is fully supported. Once this gets
fixed, we need to check the unwind cursor to see if the
target is running HP-UX or Linux. We can infer that from the
.unwabi directive associated with a signal trampoline. */
#ifdef __hpux
/* HP-UX passes the address of ucontext_t in r32: */
ret = ia64_get_stacked (c, 32, &c->sigcontext_loc, NULL);
#else
ret = ia64_get (c, c->sp + 0x10 + SIGFRAME_ARG2_OFF, &c->sigcontext_loc); ret = ia64_get (c, c->sp + 0x10 + SIGFRAME_ARG2_OFF, &c->sigcontext_loc);
#endif
debug (100, "%s: sigcontext_loc=%lx (ret=%d)\n", debug (100, "%s: sigcontext_loc=%lx (ret=%d)\n",
__FUNCTION__, c->sigcontext_loc, ret); __FUNCTION__, c->sigcontext_loc, ret);
if (ret < 0) if (ret < 0)