libunwind-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [libunwind] problem unwinding signal handler on HPUX


From: David Mosberger
Subject: Re: [libunwind] problem unwinding signal handler on HPUX
Date: Mon, 10 Nov 2003 13:31:04 -0800

Hi Rob,

>>>>> On Mon, 10 Nov 2003 15:52:37 -0500, Rob Faught <address@hidden> said:

  Rob> I don't understand what is going on either.

It looks like we were talking past each other: I assumed you did this
on Linux, but it's now clear that you see the issue on HP-UX.

  Rob> It just seems that the structure pushed on the stack is not as
  Rob> large as a ucontext_t. A mcontext_t is defined in
  Rob> include/machine/sys/newsig.h as:

  Rob> typedef struct { __opaque128_t __mc_opaque[2976]; } __mcontext_t;

  Rob> The size of ucontext_t should be: 2976 * 16 + 1024(size of misc
  Rob> header + padding) = 48640 (0xbe00) bytes

  Rob> The test below prints this as the sizeof(ucontext_t), but that
  Rob> is not the size of the data on the stack. Both the size field
  Rob> in the ucontext_t and the difference in the stack addresses
  Rob> agree that it is not.

OK, I'm not familiar enough with HP-UX-internals to know off the top
of my head where this might be coming from, but I can check around.

  Rob> My earlier suggestion for a fix is incomplete. I didn't change
  Rob> all the instances of sizeof(ucontext_t) in the file. It also
  Rob> doesn't allow me to backtrace over all my signal handler
  Rob> examples. One example has an unbound user thread for which I am
  Rob> not able to get a complete backtrace.

Let me see if I can look into it next time I work on libunwind
(hopefully sometime this week).  But if you find a complete/clean fix
in the meantime, do let me know.

Thanks,

        --david


reply via email to

[Prev in Thread] Current Thread [Next in Thread]