hi everyone!
I have a problem! I get "program stack overflow" failure while docking. Docking systme is IDA 100. What is the problem and what can I do for solve? This is ford europe standart.
krc4 kss 8.2 kr210 2700 prime
"Program Stack Overflow"
- RoboterTurkey
- Thread is marked as Resolved.
-
-
Failure is this
-
call stack depth exceeded, max 20 levels allowed.
-
Too many programs being called. Maybe there is a runaway loop somewhere or someone didn't program it very well...
Go to Main menu --> Diagnosis --> Caller Stack to see the stack and check what is being called
-
Thanks friends. Problem solved. Problem was message parameters. They fix now. Thanks for your response
LG-D802 cihazımdan Tapatalk kullanılarak gönderildi
-
call stack depth exceeded, max 20 levels allowed.
call stack depth exceeded, max 20 levels allowed.Well, on that topic, here's a puzzler. I've been getting an intermittent "Stack Overflow" error on one robot that I've spent days trying to track down. And when I was finally able to reproduce it, and pulled up the Caller Stack, the stack only shows 10 layers deep (all straight calls, no Interrupts or Triggers).
So... how can I have a "Stack Overflow" error when the stack is only 10 deep? Anyone ever seen this before? Is there any way that call layers might not be visible in the stack?
-
Quick Question , what is the max number for the "Stack Overflow" ?
I read 20 on this post, but as soon as I hit 11 the robot craps out. -
what are you testing on? what KSS? what resources?
i tested it on KSS8.3.18 and it goes just fine up to 19 subs deep without issue (main + 19 subs = 20 levels total).
calling sub 20 causes stack overflow... -
Now, I did do some testing at one point and found that if I had a subroutine call itself (recursive function), I could only get 10 deep before triggering the Stack fault. But that was on an early version of KSS 8.3, and I never really pursued it in detail.
But, yes, normally the Stack depth should go to 20, despite the odd intermittent issue I found in the earlier post in this thread. I never did track down how it was happening -- since I was pressed for time, I just found a way to re-factor my code to guarantee I never went more than 9 deep in future. -
according to my tests on KSS 5.6 and later, robot can handle up to 20 levels (main task plus 19 subs deep). But ...
Caller stack only displays up to 10 levels (plus one where overflow happens, hence up to 11 displayed entries).
This limitation is because system variable $PRO_IP is an array of only 10 elements ???.
Going deeper is possible but ... it means going blind since HMI has no ability to display more... .you can try it too, just set fist counter to some value and run program. when I[1] is set to 1000000, program completes and I[2] has value 19.
forcing one more iteration by setting I[1] to 2000000 crashes. -
here is an easier to use version... just set number of sub calls directly (such as 19 or 20)