linux-mips
[Top] [All Lists]

Re: How to detect STACKOVEFLOW on mips

To: Ralf Baechle <ralf@linux-mips.org>
Subject: Re: How to detect STACKOVEFLOW on mips
From: Matt Fleming <matt@console-pimps.org>
Date: Wed, 30 Jun 2010 22:57:41 +0100
Cc: linux-mips@linux-mips.org, Adam Jiang <jiang.adam@gmail.com>
In-reply-to: <20100630145006.GA31938@linux-mips.org>
References: <AANLkTimL7YMyb2ahmTgl8dqV_DNfsROjDhLEDm4jyVWE@mail.gmail.com> <20100630145006.GA31938@linux-mips.org>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Notmuch/0.3.1-61-g3f63bb6 (http://notmuchmail.org) Emacs/23.1.90.2 (x86_64-unknown-linux-gnu)
On Wed, 30 Jun 2010 15:50:06 +0100, Ralf Baechle <ralf@linux-mips.org> wrote:
> 
> There used to be some code for other architectures that zeros the stack
> page and counts how much of that has been overwritten by the stack.  That
> was never ported to MIPS.
> 
> Another helper to find functions that do excessive static allocations is
> "make checkstack".

Both SH and sparc use the mcount function (enabled with the -pg switch
to gcc) to check the stack has not overflowed. The relevant code is in
arch/{sh,sparc}/lib/mcount.S. This checks the stack pointer value on
every function call. Yeah, it's heavy-weight, but an implementation for
MIPS should be able to catch almost the exact point at which stack
overflow occurs.

<Prev in Thread] Current Thread [Next in Thread>