10-02-2008 09:59 AM
Wanted to port some of my older LV panels to 8.5. I noticed that LabView would generate the following message when attempting to load one of my panels:
"Unhandled exception at 0x007513e0 in LabVIEW.exe: 0xC0000005: Access violation reading location 0x00000000"
The following is a snippit of code from the debugger:
007513B0 aaa
007513B1 adc esi,dword ptr [ebp]
007513B4 bound edx,qword ptr [ebx]
007513B6 jne 007513B8
007513B8 jnp 007513CD
007513BA jne 007513BC
007513BC xchg eax,esp
007513BD adc esi,dword ptr [ebp]
007513C0 xor ecx,ecx
007513C2 xor eax,eax
007513C4 test edx,edx
007513C6 je 00751461
007513CC mov eax,dword ptr [edx+4]
007513CF test eax,eax
007513D1 push esi
007513D2 mov esi,dword ptr [edx]
007513D4 jle 0075145B
007513DA mov edx,dword ptr [edx+8]
007513DD push edi
007513DE mov edi,eax
007513E0 mov al,byte ptr [esi] <<<<************************************************ Dies here
007513E2 cmp al,2
007513E4 jne 007513EB
007513E6 or ecx,4
007513E9 jmp 00751412
007513EB cmp al,5
Panels like this one are mid sized, containing 10 - 20 sub VIs. I stripped the panel down to try and find what exactly was causing LV 8.5 to crash. It turns out to be the digital graph. I have attached a very simple panel that just contains the digital graph with nothing wired to it. If you try to run this in 8.5 I am guessing it will cause the problem. I tried it on a few PCs and get the same results.
10-03-2008 01:55 PM
lecroy,
I was able to reproduce this behavior. I believe the cause of it is the Single-plot cursor(s). If you open this VI up and get rid of the cursors and save it, it should then be able to be opened in 8.5.
If you are able to do this, would you then also try recreating the Single-plot cursors in 8.5, when you do this, does the bug still happen?
I was able to reproduce this behavior in LabVIEW 8.0, 8.2, 8.5, and 8.6.
Do you know which version of LabVIEW this VI (or at least the indicator) originated from?
10-09-2008 10:54 AM
If I remove the cursors it still crashes 8.5.
If I recreate the plot in 8.5 with or without cursors it does not crash.
I would have started using the digital graphs whenever NI came out with them. I don't think version 4 had it. Maybe version 5 or 5.1? I would have started with NI's example and gone from there. I am guessing that if you load the version 5 example, it will cause the exception.
At least you have a file that you can give to the developers that will replicate the problem. I could understand the tool popping up a message about some feature not being supported during a port, but when it fails with an exception, it makes porting difficult.
10-09-2008 01:07 PM - edited 10-09-2008 01:07 PM
Looking at my disks, version 6 appears to have been the first release to support digital graphs. I remember using as soon as it was available.
I tried several tests to see if I could further narrow down the problem for NI.
I am able to load the raw version 6.0 examples directly into 8.5.
1) I saved version 6.0 example "Simple Digital Waveform Graph" (SDWG) into a seperate VI. It loads in both 6.1 and 8.5 with no exception.
2) Loaded main.vi example and copied it into the SDWG using 6.1. Causes exception in 8.5
3) Connect the two graphs together in example so digital data is shown on both graphs, then saved the values as defaults. This version loads in 8.5 with no exception.
4) Start with main.vi, clear all the waveform data and save as defaults. Causes exception in 8.5
So, problem appears to have nothing to do with the cursors but does appear to be something with the data that had been stored into this graph when the defaults were saved. It is really strange that clearing the data does not solve the problem. Maybe this is a bigger problem than I originally thought.
10-09-2008 01:23 PM
LOL, just got some sort of unhandled problem from your website when trying to edit my last post.
Ok, one last test that really sheds some light on it. If I start with the SDWG and copy the main.vi graph onto the pannel as in step 2 above. Next, wire the two graphs as in step 3. Don't run the panel. Just save it. This will load in 8.5 with no exception.
Somehow just wiring the two together solves it.
Not sure what else I can do on my end to help NI solve it. Good luck.
10-09-2008 02:04 PM
One last test. Run same test as above, connecting the two graphs (note, this is when Labview see a change in the panel) and then erase the connection. Then save the file. This allows the panel to be loaded into 8.5 with no exceptions.
So just making the connection seems to pass somthing down to the graph that solves the problem.
With all the 8.5 exceptions being created, I seemed to have caused another problem. See the attached screen print of the 8.5 error. Never seen this one before. No idea what it means. Forcing 8.5 to close in task manager and restarting did not clear it. Had to reboot the PC to get 8.5 to work again. I doubt the two are releated, but it may be another clue...
10-10-2008 05:52 PM
lecroy,
Thank you for the extensive information! I will try to process all of this and come up with a straightforward method of doing this. I think I may end up needing to install LabVIEW 6 to do this and see if the behavior happens in 8.6 as well or if it is an issue anymore in the latest version.
Have a great weekend!
10-15-2008 02:04 PM - edited 10-15-2008 02:04 PM
I passed the main.vi I posted to the group. All of the people using the latest version of LabView stated that it causes an exception. That was 5 different users, PCs and licenses. So, I am just guessing that your latest version has the same problem.
10-16-2008 12:37 PM
lecroy,
Yes, the main.vi that is attached above causes the issue. What I meant was that I will try the process you described in post 4 with LabVIEW 6 and LabVIEW 8.6, rather than 6 and 8.5 just to check. I'm assuming the results will be the same, but I just want to be sure.
10-17-2008 01:23 PM
I just ran the entire test with 8.6 and it repeats. If there is anything else you would like to try before you pass this onto the developers, feel free to let me know.