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>