Dear Helmut,
First of all I0'd like to thank your your attention. You wrote
>
Are you creating all curves in one plot, or are you creating a series of plots?
I'm plotting in the VIRT buffer several curves calling curve() in a loop. Then I plot a non linear grid, plotting horizontal lines again using curve(). I'm not calling any function to plot an horizontal line explicitly. The horizontal line are plotted to create a non linear grid, I'm plotting experimental data using a non linear transformation ( - log10( -log10 (y) with y positive in (0,1) so no zero or 1 is possible). To create a proper grid I'm using a code like the following pseudo code to plot a single horizontal line
double x[2]
double y[2]
x[0] = x0;
x[1]= x1;
y[0] = yValue;
y[1] = yValue;
curve (x , y , 2);
Do you see any possible problem?
> Are there any Dislin warnings, especially about memory allocation?
At the moment the program is a Windows application, I'll be trying to attach a console (using AttachConsole() ) to get any message from standard error and output.
>
Are you using a lot of automatic arrays that could cause stack problems?
I'm using two
std::vector < std::vector<double> > x;
std::vector < std::vector<double> > y;
to hold the data points. Usually up to 40 curves with 10 datapoints each. So I don't think there is a stack problem. The vector are used in code like
for (uint64 index =0; index < x.size(); ++size)
{
curve ( x[index].data() , y[index].data() , x[index].size() );
}
I already checked that x and y have the same size and each
x[index] and y[index] vectors have the same size.
> Is it possible to reduce the program to an example code, that can reproduce the crash?
It is very difficult. It's a multi thread program, a working thread is acquiring the data then it sends and event message to the main thread to just re-plot the curves. Using wxWidows the main thread can be used for the GUI only.
During the plotting phase no data are acquired. Moreover the crash appears in about 10% of the acquisition runs....it is not reproducible. I'm still looking for issue in my code........
Regards
Max