LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

'Memory is full' error message

Hi

i received the error message..'Memory is full' VI "index.vi" was stopped at node 0xCEC of subVI "Livitestrun.vi" when i am executing a program.

The following is a simple flowchart of the program:

index.vi => LIVItestwindow.vi => livitestpopup.vi => Livitestrun.vi

Is there a limit to the number of subVI that can be called in a program?

Thank you very much to anyone who reply.

Regards
Benny
0 Kudos
Message 1 of 3
(2,857 Views)
Hi Benny,

I have never heard of a limit on the number of sub-VI's that can be called.

I have seen similar errors under two conditions.
1) I was initializing a huge array.
3) I had the array transposed when passing to a chart. This left the chart thinking I had 10 points from 200 channels rather than 200 points for 10 channels.

Could you post the code so we can take a peak?

Ben
Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 2 of 3
(2,857 Views)
> i received the error message..'Memory is full' VI "index.vi" was


> index.vi => LIVItestwindow.vi => livitestpopup.vi => Livitestrun.vi
>
> Is there a limit to the number of subVI that can be called in a
> program?
>

The limit is imposed by memory limitations and not by a fixed number.
What I'd do if I were you is place a breakpoint in Livitestrun.vi, or
set the pause button. The first time the VI is called, it will pop open
the diagram and wait for you to debug. Look at the inputs to the
function and see if they make sense. Is someone passing in a number
that will be used to resize something to a huge size? If nothing is
obvious at this level, turn on execution hiliting and start single
stepping. If the diagram is huge or loops many times, us
e breakpoints
instead, but determine which node runs out of memory and what input
causes it.

Common causes are For loops that auto-index an output and have a huge
number wired to N or have a negative number wired to N. The negative
number is cast to unsigned and becomes a huge number. Initialize array
is anothre place that allocates memory from a number. When you find the
node, correct the logic that produced the huge number.

Greg McKaskle
0 Kudos
Message 3 of 3
(2,857 Views)