LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

CVI 8.1 PlotPackedDigitalLines() causing GPF on Win7 Machines

Solved!
Go to solution

I'm learning some FPGA stuff, and my project for learning right now is a logic analyzer.

 

I have an environment to test the FPGA, and it is working correctly.

 

In the attached code, I "touch" the FPGA, do a data acquisition, and then pipe the dat back to the PC.  This all appears to be working correctly.

 

Then I try to display the data in a digital graph...  Line 63 of the code:

 

PlotPackedDigitalLines(panel, PANEL_DIGGRAPH, LA_Memory, 16*1024*1024, VAL_SHORT_INTEGER, (void *)0x00ff);

Whenever the code hits this line, I get a General Protection Fault.  It doesn't matter if it's in the debugger or standalone executable.  Happens across multple machines (all running Win7 - sorry, I don't have any other platforms any more)

 

In searching the forums, I found this possibly related thread/report:

http://forums.ni.com/t5/LabWindows-CVI/Memory-leakage-in-Digital-Graph-control/m-p/674258/highlight/...

 

Is this the problem I'm running into?  Is this a bug in CVI, or am I doing something especially silly?  If it's a bug, is there a patch or something to fix?

Help!

0 Kudos
Message 1 of 7
(3,874 Views)
Solution
Accepted by topic author tomii

This may be a wrong hint, as I never used this function, but the documentations says the mask must be of the same type of the data. You could try using a pointer to a short integer constant.



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
Message 2 of 7
(3,862 Views)

That would seem to have been it...  It's a kind of a weird way to do it I think (why not just pass an int or something?), but that fixed the problem.

 

Thanks!

0 Kudos
Message 3 of 7
(3,838 Views)

I have to take it back...

 

It would seem to be 8.1 specific.  I have a split environment, now - I downloaded the evaluation for the current version (12.1?), and the attached code compiles and runs fine.  In the 8.1 environment, it compiiles and runs, but gives me a GPF when it attempts to execute the PlotPackedDigitalLines() function.

 

D'oh.

Download All
0 Kudos
Message 4 of 7
(3,805 Views)

As long as you passing &gMask and not gMask, PlotPackedDigitalLines should not crash. Neither in 8.1 nor in 12.0. I can't run your attached code since there are pieces missing. Do you have a small project that you can attach here that reproduces the crash in 8.1? If not, can you attach a screenshot of the GPF details window, along with the exact version of cvirte.dll?

 

Thanks,

 

Luis

0 Kudos
Message 5 of 7
(3,778 Views)

From NI support (From last night):

 

Hi Tom,

We do have a known issue (CAR#: 99422) in which a General Protection fault
occurred with the PlotPackedDigitalLines function. This occurred when using a
data type other than VAL_INTEGER or VAL_UNSIGNED_INTEGER or specifying a large
number of values (> 10,000). Based on the function parameters in forum post, it
looks like the issue you are experiencing could be a result of this bug. This
issue was fixed in CVI 8.5.1, as shown in the following link.

http://www.ni.com/white-paper/6897/en#toc1

Please let me know if you have any additional questions.


Regards,

Anjelica Warren
Applications Engineer
National Instruments
http://www.ni.com/support

 

It would seem I might need to fork over the $$$ for an upgrade.

0 Kudos
Message 6 of 7
(3,773 Views)

To reiterate - when I compile under 8.1, I get GPFs.  When I compile under 12.1 (eval), everything works as I intended.  Per the support e-mail above, thisis most likely a known bug that was fixed in 8.5.1... 

 

I guess I'm gonna have to shell over $1300 for the new version, although I'm trying to find out if I have any other options...

0 Kudos
Message 7 of 7
(3,772 Views)