LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Frustrating Compiler Bugs

I have a rather large application (700+ vi's 2 xcontrols 3 statecharts 47 lvoop classes) and I'm getting tired of trying to workout problems with the application builder.

Sometimes the problems are obscure (adding a filedialog express vi in a statechart wouldn't compile until I opened the front panel and saved it as a non-express vi. If I remember right I couldn't create a small example demonstrating the bug). Some are my fault (a recursive lvoop function that calls a Shared Clone Reentrant subvi that in turn could potentially (though never did) call the function that called it (basically recursion without a lvoop object stringing it together), this would function fine in development but would make the application builder very unhappy (I wish it would have told me what vi it was having a problem with though). And my current problem of if I add a node for an empty class (that only inherits from one of my other classes), it can't build and LabVIEW throws a fit all over the rest of windows (I'll explain what I mean below). The part that makes it frustrating is that the compiler fails without a decent indication of why. Then I get to try to straighten it out by removing/tweaking the changes I made since the last working version in source control, and attempting a 20 minute recompile (and repeating until it starts working again which makes a 30 minute change into a two day change).

So basically I'm wondering if there's a better way of dealing with compiler problems (like a decent log file somewhere), or beta version of LabVIEW with a newer application builder  that I could try using (8.5 fixed one of the bugs I was having in 8.2 with classes with the same name living in different lvlibs). Hopefully a version one that can use lvoop objects without making a bunch of folders (more annoyance than serious problem). I could probably send a version of my program to NI to play with, but it depends on some third party dlls (aerotech a3200 software), that apparently need to be properly installed for LabVIEW to access it (just copying the dll's doesn't seem to be enough for moving to test building on a different system). Or if anyone has some other suggestions. Currently on my list of pain in the neck things to try are remake the project, reinstall labview, reinstall windows, move into the mountains and live as a hermit.

As for what I mean by the application builder throwing a fit, it seems that the application builder can interact with explorer.exe in several a nasty ways (it doesn't always dispay all of these). Some windows don't get redrawn right (part a window on one monitor gets drawn on another), the icons on the desktop get repeatable redrawn, some applications stop responding, and ctrl-alt-del just causes beep from the computer as it mocks my attempts to kill the labview process (at this point I can forcible power down the system, or wait several minutes for the application builder to finish it death throws, where it's last breath cries about an error in drawmgr.cpp line 3570). I've run into the problem a few times before (the last time I had to turn off Disconnect type defs in the Additional Exclusions to get it working), but it got old the first time I had to work around it.

Also about 95% of the time LabVIEW crashes when I try to close my project (this is just annoying since I now just use save all before closing). And I found a bug where if I run my programs executable and in the development environment at the same time it blue screens the computer with a error in nisrx.dll, from another post I read I believe this is due to both programs trying to allocate the digital inputs on my daq board, and instead of the second returning an error it just blue screens (I would try to make an example problem vi, but I'm busy trying to get my program to build).

LV 8.5 Professional, DAQmx 8.6, Vision 8.5, Statechart module.



0 Kudos
Message 1 of 14
(5,644 Views)


Matt W wrote:

So basically I'm wondering if there's a better way of dealing with compiler problems (like a decent log file somewhere), or beta version of LabVIEW with a newer application builder  that I could try using (8.5 fixed one of the bugs I was having in 8.2 with classes with the same name living in different lvlibs).

I can't help you with your problems, but you can request to be a beta tester at http://www.ni.com/beta and presumably NI reviews those applications whenever it starts a beta program (which, judging by the recent history of releasing a new LV version at or around NIWeek, would probably be around now).
 
I assume that if you add in your registration that you are trying to build a complex application you will be more likely to be accepted, since I assume NI wants to test its beta versions with real world uses.

___________________
Try to take over the world!
Message 2 of 14
(5,625 Views)

Hi Matt,

LabVIEW provides the ability to create a very detailed log of the events that occur when building an installer. To create the detailed log, follow the steps below:

1. Navigate to the C:\Program Files\National Instruments\LabVIEW 8.2 directory.
2. Open up the LabVIEW.ini file and copy the "CDK.EnableLog=true" text to the bottom of the file. Enabling this feature will cause a detailed debug log to be written to your temp directory.
3. Save the changes and close the ini file.

The debug log should be located in the %temp% directory of your computer (%...% means a computer variable). To determine where this temp directory is located, follow the steps below:

1. Select Start » Run, type in "cmd" and then press OK.
2. Type "set" in the command prompt. This will return all of your computer's variable names.
3. Look for TEMP in the list of variable names. You should see something like "TEMP=C:\DOCUME~1\user\LOCALS~1\Temp".
4. Navigate to this directory using Windows Explorer. You should see a file named "Name.log" where "name" is the name of your build specification. For example, you might see "My Installer.log" if the name of your build specification is "My Installer".

Hope this helps!

Veda

 

Message 3 of 14
(5,584 Views)
I enabled the settings in the labview.ini

I found some text files that looked like logs "LabVIEW_8.5_Matt_cur.txt" "LabVIEW_8.5_Matt_log.txt". Which contained some error logs and call after I tried to compile. I attached some logs from my attempts to compile. For the errors that referenced a vi and a statechart guard, I remade the vi and the referenced guard. The others all have
..... /drawmgr.cpp(3570) : DAbort: Couldn't create 24 pen Error ==0
in common and some had a
....../image.cpp(13927) : DWarn:  could not get hdc error = 0
warning. I'm guesing these are related to the graphical problem I'm getting with explorer. But since I can't decode the call stack I'm not sure what the source is (assuming the cause is within the call stack).

It looks like LV 8.6 Beta is going to open soon. Does anyone know if Vision will work with it? And Is there any kind of obligation to use the beta regularly? Since if it doesn't help much, I'd probably just end up removing it.

Matt W

0 Kudos
Message 4 of 14
(5,565 Views)


@matt W wrote:
Is there any kind of obligation to use the beta regularly? Since if it doesn't help much, I'd probably just end up removing it.

In my experience, there is no real obligation. I'm sure NI will also be happy if you just test your complex application.

That said, they will probably be happier if you also try it for more things. I don't think it's supposed to collide with other versions.

As for whether or not the vision module is included, the public announcement refers to some of the modules as well as LabVIEW itself, so I suppose it's possible.

___________________
Try to take over the world!
Message 5 of 14
(5,545 Views)

Hi Matt,

From your error logs, you have 3 reoccurring errors. /drawmgr.cpp (3570) : DAbort, /fpsane.cpp (369) : DWarn, and /image.cpp (13927) : DWarn.

A DWarn error is something unexpected but not fatal. LabVIEW will continue executing. These are usually not bad and you should not be overly concerned. A DAbort error is a fatal error and usually causes LabVIEW to crash.

The error /drawmgr.cpp (3570) : DAbort was reported to R&D (# CAR ID 4CCBD2PW) and has been fixed for a further version of LabVIEW.

The error /fpsane.cpp (369) : DWARN was reported to R&D (# CAR ID 4HNA8A00) and has been fixed for a further version of LabVIEW.

Thanks for the feedback!

Veda

Message 6 of 14
(5,512 Views)
Well I applied for the beta, hopefully I can soon see if those bugs were fixed in it.

Matt
0 Kudos
Message 7 of 14
(5,482 Views)
Matt,

There were some issues with AppBuilder and apps using statecharts that will be fixed in 8.5.1; I'm not sure if these are the same as the issues you were having (since you couldn't get a simpler easy to reproduce example). If you can get these kinds of things reproducible or still have problems in 8.5.1 or later, please let us know.

0 Kudos
Message 8 of 14
(5,457 Views)
Since the beta is for 8.6, and I'm not seeing a download for 8.5.1, do you know when 8.5.1 will be available?

Matt W
0 Kudos
Message 9 of 14
(5,425 Views)


@matt W wrote:
Since the beta is for 8.6, and I'm not seeing a download for 8.5.1, do you know when 8.5.1 will be available?

Matt W



It's expected to be released soon but hasn't been yet. And unless they change their 8.2.1 update policy it will not be downloadable but being shipped to all customers that have a current Maintenance Support Contract for LabVIEW.

Rolf Kalbermatter
Rolf Kalbermatter  My Blog
DEMO, Electronic and Mechanical Support department, room 36.LB00.390
Message 10 of 14
(5,417 Views)