Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 May 2013 12:47:11 +0100
From:      Andrew Turner <andrew@fubar.geek.nz>
To:        Tim Kientzle <kientzle@freebsd.org>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: Is this related to the general panic discussed in freebsd-current?
Message-ID:  <20130506124711.23978ec8@bender.lan>
In-Reply-To: <724191A9-57F4-4D66-9E4A-EBBC13BDC0D1@freebsd.org>
References:  <51835891.4050409@thieprojects.ch> <03971BD1-4ADE-4435-BDD0-B94B62634F1D@bsdimp.com> <5183BF8C.4040406@thieprojects.ch> <CCABA43A-6D7E-4310-9F68-AEE54C88F431@kientzle.com> <6D0E82C9-79D1-4804-9B39-3440F99AA8FE@kientzle.com> <20130505140006.0d671ba5@bender> <D0B02568-E7AB-410E-8717-E9F9C745E6ED@kientzle.com> <20130505233729.63ac23bc@bender.lan> <B5B4C509-5CEC-4155-90BF-B40D7395F09B@kientzle.com> <724191A9-57F4-4D66-9E4A-EBBC13BDC0D1@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 5 May 2013 22:39:56 -0700
Tim Kientzle <kientzle@freebsd.org> wrote:
> Here's a version of stack_capture that allows a Clang-built
> OABI kernel with WITNESS enabled to boot:
> 
> /* In sys/arm/arm/stack_machdep.c */
> static void
> stack_capture(struct stack *st, u_int32_t *frame)
> {
>         vm_offset_t callpc;
> 
>         stack_zero(st);
>         while (INKERNEL(frame)) {
>                 callpc = frame[1];
>                 if (stack_put(st, callpc) == -1)
>                         break;
>                 frame = (u_int32_t *)(frame[0]);
>         }
> }
It looks like this should work in most cases where fp and lr are next
to each other (ip and sp are between them but doesn't need to be saved).
> 
> 
> From the above, it sounds like this should not be committed;
> rather, we should fix Clang's OABI support to emit the right
> frame layout.  I've not yet started to look through Clang to
> try to figure out how to do that….  Any pointers?  ;-)
Disable this stack unwind code? I'll fix the clang EABI issue and
switch the ABI.

Andrew



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130506124711.23978ec8>