tech-kern archive

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

Re: Request for implementation of KERN_PROC_SIGTRAMP sysctl



yes, it sounds like a __in_signal_trampoline function would work for
the GCC unwind, and I would think it would work for GDB as well.
Thanks,
John

On Mon, Oct 18, 2021 at 10:48 AM Jason Thorpe <thorpej%me.com@localhost> wrote:
>
>
>
> > On Oct 18, 2021, at 8:41 AM, John Marino (NetBSD) <netbsd%marino.st@localhost> wrote:
> >
> > For GCC, we've got the return address (context->ra in the unwind
> > programs in the original post).   The "problem" is that we want to
> > know if that address falls on a signal trampoline frame.  If NO,
> > return "end of stack", otherwise unwind the frame.
>
> Seems like a non-portable libc function that could check among the various candidates that libc knows about would not be terribly difficult.
>
> > A sysctl that returns an array of address pairs for all signal
> > trampolines in the process is what I'm requesting.
>
> Would a function like (hypothetically-named) "bool __in_signal_trampoline(uintptr_t addr);" provided by libc be workable for your use case?
>
> > If there's another way to determine if an address falls within a
> > signal trampoline, I'd like to see actual code to see if I can adapt
> > it.
> > Of course, the kernel team could just deny the request, but I won't be
> > able to fix the regression caused when the per-signal trampolines were
> > introduced.
> > Thanks,
> > John
>
> -- thorpej
>


Home | Main Index | Thread Index | Old Index