[Pd] Stack Overflow

david golightly davigoli at gmail.com
Thu Mar 23 20:48:13 CET 2006


The Magic of Google:

http://www.devx.com/tips/Tip/14276

Understanding Stack Overflow
The stack is a region of memory on which local automatic variables are
created and function arguments are passed. The implementation
allocates a default stack size per process. On modern operating
systems, a typical stack has at least 1 megabyte, which is sufficient
for most purposes. Under anomalous conditions, the program exceeds its
stack limit. This causes a stack overflow. The two most common causes
for a stack overflow is an infinite recursion, as in:


int f(){
 g();
}
int g() {
 f();
}

f() calls g(), which in turn calls f() and so on.  If your program
crashes due to a stack overflow, check for infinite recursion or too
large local objects.

-----------------------------

Hope that helps!

David

On 3/23/06, Tim Blechmann <TimBlechmann at gmx.net> wrote:
> > I don't understand.  I've understood recursive to mean a function that
> > calls itself within itself.  The output from my patch retriggers the
> > patch, but to my understanding it should all be determinate; if Pd
> > uses depth-first message passing, it should finish with one thread
> > before calling the next.  The abstraction is only retriggered from its
> > left outlet, so nothing should happen during the 10 ms delay.
> >
> > I'm also not sure how [until] will help.  Pd doesn't know how many
> > scalars the score has, or how many are of any one structure.
> >
> > I'm still not clear on what "the stack" is or what makes it overflow.
> > Thanks.
> >
>
> in pd every outlet call is a recursive function call ... if an message
> goes back to the message signal flow, you have an iteration ...
>
> i've attached a simple patch with a counter counting to 100 ... this
> might show you the difference ...
>
> hth ... tim
>
>
> --
> TimBlechmann at gmx.de    ICQ: 96771783
> http://www.mokabar.tk
>
> Every word is like an unnecessary stain on silence and nothingness
>  Samuel Beckett
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.2.2 (GNU/Linux)
>
> iD8DBQBEIulDNDZZF/Yk3sURAqUWAKCU5ykxTxdSyouzICj4zqobpNoP+wCfUVPu
> pj3x4x6zYloo+8TcpPRsa7w=
> =vknI
> -----END PGP SIGNATURE-----
>
>
> _______________________________________________
> PD-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
>
>
>
>




More information about the Pd-list mailing list