[Openmcl-devel] ARM testing

David Brown lisp at davidb.org
Thu Jan 27 11:38:00 PST 2011


On Thu, Jan 27 2011, Gary Byers wrote:

> On Tue, 25 Jan 2011, David Brown wrote:

> That function will be called exactly once when the lisp loads the
> bootstrapping image.  If you set a breakpoint on that function and
> step through it until after the call to 'pthread_attr_getstack', what
> does:
>
> (gdb) p *size

8MB, as expected.

> 2) If you continue and let the image load fasl files, you'll reach the point
> where it gets the SIGBUS in rmark().   If GDB gets control when the SIGBUS
> is raised and the process isn't killed, you should be able to determine the
> value of the stack pointer (r13) at the point where the fault occurred:

Well, at least once I told gdb to actually stop on the SIGBUS :-)

> (gdb) info reg r13

Comparing the sp and the high address of the stack is the same 1.2MB
we've been seeing.

Interestingly, if I try this with a small C program, the stack blows at
just past 8MB, like expected.

> If you then look at /proc/PID/maps, you'll likely see that r13 is near or
> just past the lowest address of the stack region.
>
> How far is it from the high address of that region, e.g., how large was
> the stack allowed to grow before something decided that it had overflowed ?

One interesting tidbit is that there is a mapping at about 1.3MB below
the stack.  Perhaps that mapping is preventing the stack from growing.

beda8000-bedda000 r-xp 00000000 00:00 0 
beddb000-bef0c000 rwxp 00000000 00:00 0          [stack]

David



More information about the Openmcl-devel mailing list