P. Rosegger Posted August 28, 2008 Report Share Posted August 28, 2008 Hi there, does anyone out there have any suggestions how to debug reentrant VIs in RT? So far we couldn't figure out any feasible way... TiA, PR Quote Link to comment
LAVA 1.0 Content Posted August 28, 2008 Report Share Posted August 28, 2008 QUOTE (P. Rosegger @ Aug 27 2008, 01:48 PM) Hi there,does anyone out there have any suggestions how to debug reentrant VIs in RT? So far we couldn't figure out any feasible way... TiA, PR I'm sure I will not remember all of them but ... Use the Hiearchy screen and do a ctrl-a to find the re-entrant VI's. Find the re-ntrant VI on a diagram and double click it to open the FP of that instance of the re-entrant VI Ben Quote Link to comment
P. Rosegger Posted August 29, 2008 Author Report Share Posted August 29, 2008 QUOTE (neB @ Aug 27 2008, 07:50 PM) Use the Hiearchy screen and do a ctrl-a to find the re-entrant VI's. Hi neB, thanks for your answer, which unfortunately does not work for us. I'll try to explain in detail what we were trying: We need to load multiple instances of reentrant VIs dynamically via "Open VI Reference". As it seemed not possible in RT to place break points in reentrant VIs that are loaded dynamically we had no possibility to directly debug these VIs. Furthermore, as LabVIEW couldn't find the VIs-to-be-loaded we copied them manually to the RT system via FTP and changed the path information to have them loaded from that new location. That's why we could find no way to see wether the vi was loaded and - if it was loaded - what was going on in there. Today we realized that in the exe creation dialogue we can define which files are to be loaded dynamically ("Source files" -> "Dynamic VIs and Support Files"). The exe creator obviously copies also those files to the RT system (at least our application worked again afterwards). The good thing about it: We're now able to open the files that are loaded dynamically in the project explorer and we're also able to debug them. The bad thing: We need to deploy those files manually after each change. Thanks again, PR Quote Link to comment
LAVA 1.0 Content Posted August 29, 2008 Report Share Posted August 29, 2008 Unless I mis-read you the reason they could not be found was tht they were not loaded. A "cheap trick" that use to work was to put an instance of the dynamically called VI in a non-executing case structure so that the VIs are part of the top level app. This will forrce the dynamic VI to be deployed with the app. Also watch your file spec since the specs change in a exe. If you are using an invoke node, call by reference, I think you can now single step into that call and debug as normal. I also seem to remember that if you single step into multiple re-cursive calls you want to get out of all of the re-cursive calls before stopping LV to avoid a crash. (Just a friendlt warning) Ben Quote Link to comment
crelf Posted August 29, 2008 Report Share Posted August 29, 2008 QUOTE (neB @ Aug 28 2008, 07:06 AM) A "cheap trick" that use to work was to put an instance of the dynamically called VI in a non-executing case structure so that the VIs are part of the top level app. This will forrce the dynamic VI to be deployed with the app. Note: if you do this by wiring a constant to the case selector, this won't work when you build an app in LabVIEW 8.x (LabVIEW will strip the non-executing cases and anything that's inside them) as it folds the case structure. Quote Link to comment
ragglefrock Posted August 30, 2008 Report Share Posted August 30, 2008 QUOTE (crelf @ Aug 28 2008, 09:48 AM) Note: if you do this by wiring a constant to the case selector, this won't work when you build an app in LabVIEW 8.x (LabVIEW will strip the non-executing cases and anything that's inside them) as it folds the case structure. Absolutely correct. Right thing to do now is to use a http://zone.ni.com/reference/en-XX/help/371361B-01/glang/static_vi_ref/' target="_blank">Static VI Reference. 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.