[Top][All Lists]
[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