Difference between revisions of "Error Messages/40938"
(Created page with '= Example Error Message = :Stack overflow. This condition occurs when pending evaluations of variables or functions get nested too deeply. The most common cause is a recursive…') |
AManandhar (talk | contribs) |
||
Line 1: | Line 1: | ||
= Example Error Message = | = Example Error Message = | ||
− | + | Stack overflow. This condition occurs when pending evaluations of variables or | |
+ | functions get nested too deeply. The most common cause is a recursive user-defined | ||
+ | function with an infinite, or excessively deep, recursion. | ||
:Call stack: | :Call stack: |
Revision as of 17:47, 9 February 2010
Example Error Message
Stack overflow. This condition occurs when pending evaluations of variables or functions get nested too deeply. The most common cause is a recursive user-defined function with an infinite, or excessively deep, recursion.
- Call stack:
Do_srch Do_srch Do_srch ... (8656 function calls not shown) Do_srch Do_srch Srch_on_v Va1
Cause
As the message suggests, you probably have a recursive User-Defined Function (a UDF that calls itself), with no termination condition ever satisfied. For example, the error occurred in this recursive function:
Function Do_srch(v : atom handle ; L : list handle ) Definition: Var n := Size(L,listLen:true); If n>0 Then ( MetaVar f1 := Slice(L,1); MetaVar rest := Slice(L,Sequence(2,n,strict:true)); WhatIf( Do_srch(v,L), f1, fixVal[theVar=f1] ) ) Else ...
In this case, there was a bug in Do_srch(v,L)
, which should have been Do_srch(v,rest)
. The bug caused the recursive function to call itself with the same parameters each time.
Comments
Enable comment auto-refresher