Mellroth Posted January 19, 2007 Report Share Posted January 19, 2007 I reported this bug december 2005, and just recently checked if it was still present in LabVIEW 8.2 (sorry I don't have a CAR for this one). /J ------- The Problem.vi contains a pre-allocated array, that is populated by using a second array that is auto indexed in a FOR loop. The crash: LabVIEW crashes when closing the Problem.VI after it has been run. LabVIEW also crashes sometimes, if you edit and try to save a VI (Caller vi), that has the Problem.VI in its sub-vi hierarchy (Caller VI must be run first in order to crash)) Solution: Change the dimension size input (Initialize array) from constant to control (this changes the type of the array wires) the pre-allocated array changes from "1-D fixed size array [100] of" to "1D array of". the output from the Array subset node changes from "1-D bounded-size (sub) array [100] of" to "1-D (sub)array of" In LabVIEW 7.1.1, I have the FPGA toolkit installed, maybe this is forcing LabVIEW to use a special version of the "Initialize array" node? Download File:post-5958-1169203496.zip Quote Link to comment
Rolf Kalbermatter Posted January 19, 2007 Report Share Posted January 19, 2007 I reported this bug december 2005, and just recently checked if it was still present in LabVIEW 8.2 (sorry I don't have a CAR for this one)./J ------- The Problem.vi contains a pre-allocated array, that is populated by using a second array that is auto indexed in a FOR loop. The crash: LabVIEW crashes when closing the Problem.VI after it has been run. LabVIEW also crashes sometimes, if you edit and try to save a VI (Caller vi), that has the Problem.VI in its sub-vi hierarchy (Caller VI must be run first in order to crash)) Solution: Change the dimension size input (Initialize array) from constant to control (this changes the type of the array wires) the pre-allocated array changes from "1-D fixed size array [100] of" to "1D array of". the output from the Array subset node changes from "1-D bounded-size (sub) array [100] of" to "1-D (sub)array of" In LabVIEW 7.1.1, I have the FPGA toolkit installed, maybe this is forcing LabVIEW to use a special version of the "Initialize array" node? Download File:post-5958-1169203496.zip The idea about FPGA might be interesting here. Earlier versions of LabVIEW did not support (or should I say use) fixed sized arrays although the typedescriptor explicitedly had this feature documented as long as the document about Typedescriptors exists. FPGA was to my knowledge the first environment really needing fixed size arrays so they pushed that. The particular problem you see also seems a bit like pains of the early attempts to get the constant folding optimization into LabVIEW. Not sure if the FPGA Toolkit adds this feature to the LabVIEW environment but I rather think that it is there independant of the existence of the FPGA Toolkit (but can't currently check as I have the FPGA Toolkit also installed). Rolf Kalbermatter Quote Link to comment
Mellroth Posted January 19, 2007 Author Report Share Posted January 19, 2007 I reported this bug december 2005, and just recently checked if it was still present in LabVIEW 8.2 (sorry I don't have a CAR for this one). Added the bug to the LV7.1.1 bug list as well: http://forums.lavag.org/LabVIEW-crashes-wi...-711-t5888.html The same crash appears in LV8.2 if the LV7.1.1 VI is opened, but not if the code is created from scratch. Somehow LabVIEW is using a special version of the "initialize array" node in LabVIEW 7.1.1, and when opened in LV8.2 this version is still being used (generating "fixed size array"). Developing new code in LabVIEW 8.2 is not a problem, its only when you open up old 7.1.1 code you might run into this crash. What really annoys me is that the two VIs, Problem.vi and Problem-solved.vi is more or less identical, its only when you check the type of wire you can spot the difference. Download File:post-5958-1169204334.zip /J ------- The Problem.vi contains a pre-allocated array, that is populated by using a second array that is auto indexed in a FOR loop.The crash: LabVIEW crashes when closing the Problem.VI after it has been run. LabVIEW also crashes sometimes, if you edit and try to save a VI (Caller vi), that has the Problem.VI in its sub-vi hierarchy (Caller VI must be run first in order to crash)) Solution: Change the dimension size input (Initialize array) from constant to control (this changes the type of the array wires) the pre-allocated array changes from "1-D fixed size array [100] of" to "1D array of". the output from the Array subset node changes from "1-D bounded-size (sub) array [100] of" to "1-D (sub)array of" In LabVIEW 7.1.1, I have the FPGA toolkit installed, maybe this is forcing LabVIEW to use a special version of the "Initialize array" node? Download File:post-5958-1169203496.zip Quote Link to comment
Mellroth Posted January 23, 2007 Author Report Share Posted January 23, 2007 CAR# 3SL9US00. /J Quote Link to comment
Mellroth Posted January 23, 2007 Author Report Share Posted January 23, 2007 CAR# 3SL9US00. Update: LabVIEW 8.2 will also crash if you create the Problem.vi for a FPGA target, and then open the VI in "Main Application Instance". The reason seems to be that the VI remembers what target it originally was created for, and therefore uses a special version of the "Initialize array" node, that outputs "fixed size array". /J Quote Link to comment
robijn Posted January 23, 2007 Report Share Posted January 23, 2007 I've seen something related (most probably already reported too). It seems an array control or constant can remember that it was wired to a fixed size array. Then when you paste it somewhere else, the array wire does not allow to be changed size anymore. I was unable to remove the problem changing control/wire properties or by setting FPGA options off and restarting LV. Workaround: create the wire/control again from scratch. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.