Is this related to the general panic discussed in freebsd-current?
Andrew Turner
andrew at fubar.geek.nz
Mon May 6 11:47:13 UTC 2013
On Sun, 5 May 2013 22:39:56 -0700
Tim Kientzle <kientzle at 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
More information about the freebsd-arm
mailing list