Due to previous problems, I compiled my program without optimization. After running for a few seconds, it failed with SEGMENTATION FAULT. The point of failure was a printf call, which ran without problem for some seconds before. Please see a sample of the output:
N#3043 THREAD#1 START#3402630 LENGTH#1996 R:A INDEX#3042 V=0.414683 WAVE:FADEINMAG
N#3044 THREAD#1 START#3402630 LENGTH#58528 R:V INDEX#3042 V=0.00672363 WAVE:SIN FR=21.3818 MOD:TREMOLO
N#3045 THREAD#1 START#3402630 LENGTH#58528 R:N V=0.138142 WAVE:BURST3 RING:MIN FR=103.826 PAN=0.0830693 SHAPE=0.400693 TRIM1=0.292253 TRIM2=-0.35383
N#3046 THREAD#1 START#3402630 LENGTH#1996 R:A INDEX#3045 V=0.414683 WAVE:FADEINMAG
N#3047 THREAD#1 START#3402630 LENGTH#58528 R:N V=0.138142 WAVE:BURST3 RING:MIN FR=103.826 PAN=0.0830693 SHAPE=0.400693 TRIM1=0.292253 TRIM2=-0.35383
N#3048 THREAD#1 START#3402630 LENGTH#58528 R:N V=0.138142 WAVE:BURST3 RING:MIN FR=103.826 PAN=0.0830693 SHAPE=0.400693 TRIM1=0.292253 TRIM2=-0.35383
N#3049 THREAD#1 START#3402630 LENGTH#58528 R:N V=0.138142 WAVE:BURST3 RING:MIN FR=103.826 PAN=0.0830693 SHAPE=0.400693 TRIM1=0.292253 TRIM2=-0.35383
N#3050 THREAD#1 START#3402630 LENGTH#58528 R:N V=0.1381
The fragment of code with the problem (please see attachment)
The stats() routine:
void stats(void)
// Prepare usage statistics
{
if (Par.p[SAMPLE] != 2) // Generate usage statistics
Tabring[Par.smt].use++;
if (Par.mt >= 0)
Tabmod[Par.mt + 1].use++;
Tabmain[Par.id].use++;
}
The disassemble at the point marked (please see attachment)