Re: [rfa:NetBSD/ppc] Implement signal trampoline unwinder

Jason Thorpe
2004-03-02T23:29:17Z

[-- Attachment #1: Type: text/plain, Size: 1163 bytes --]

On Mar 1, 2004, at 1:33 AM, Mark Kettenis wrote:

> The problem is that the location of the signal trampoline depends on
> the VM layout, which can be changed. And on OpenBSD (which is very
> similar to NetBSD in many respects) the signal trampoline is mapped at
> a random location. So checking for the address isn't the most robust
> way. That's why NetBSD/i386 doesn't do this anymore, but instead
> looks for a specific instruction sequence (the instruction sequence
> for the sigreturn(2) system call).

Yes, other NetBSD targets do this as well, Alpha and MIPS, for example.

> NetBSD is moving away from using kernel-provided signal trampolines.
> NetBSD 2.0 will use signal trampolines provided by libc. These
> tramplones can be recognized by their name: they start with
> __sigtramp. See nbsd-tdep.c:nbsd_pc_in_sigtramp() and its usage in
> amd64nbsd-tdep.c.

Right. They've been provided by libc for quite some time in -current,
and 2.0 will ship with them when it ships.

In general, I think doing things in the debugger based on a priori
knowledge of a magic address is kinda gross.

-- Jason R. Thorpe <thorpej@wasabisystems.com>

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 186 bytes --]