10-19-2021 01:57 AM
Dear all,
In reference to my question here: https://forums.ni.com/t5/LabWindows-CVI/Application-Crash/m-p/4183226#M89481
I have some other information about the crash.
The crash is probably caused from the function YGraphPopup.
The problem is that this function is not used in my code, I use only the PlotXY function.
I repeat that the crash occurs randomly (and not always).
I attached the dump analysis.
So my question is: does anyone know if the "PlotXY" function calls the YGraphPopup function?
If the answer is yes, probably this is a CVI bug.
Let me know.
10-20-2021 07:03 AM
Hey,
I'm creating a small Equalizer project, and for that I'm willing to get an input signal from the computers' internal microphone.
Unfortunately, searching here and online didn't give me enough information.
I did found some old information about ActiveX/Windows SDK, but it's really confusing.
Thanks for any help or guidance.
10-25-2021 02:07 AM
Hello johnbop, I never fall into a situatio similar to yours even if I extensively use PlotXY in my applications. Based on the stack trace it appears as if a breakpoint was hit into the RTE, so this item should be studied by NI. Besides raising a service request in NI, you could try searching if a newer version of the RTE is available on NI site which could fix this anomaly.
11-09-2021 06:01 AM
So are you really sure you pass the right data pointers to PlotXY()?
It's very easy to suspect a bug in a library function, but MUCH more likely that you have a bug in your own program.
If your xArray or yArray are not large enough to contain the right data as specified by xDataType and yDataType together with numberOfPoints, you can easily run into such problems.
The UP_ prefix in that function indicates that it is a User Protection wrapper around the real function. User Protection means that the wrapper checks all the parameters to be of the correct datatype and size according to runtime information that is calculated from the other parameters and the runtime information attached to dynamically allocated pointers.
So lets say you pass in an array as yArray that was allocated using malloc(10000 * sizeof(float)) and then pass VAL_DOUBLE as yDataType and 10000 as numberOfPoints, this user protection code will cause a user protection breakpoint, since the dynamic allocated pointer clearly can not hold 10000 * sizeof(double) values. If the user protection wrapper would be disabled the code would simply try to access that array anyhow and either cause totally wrong plotted data or a general protection fault exception if the memory accessed beyond the valid pointer is not currently mapped into the process.