Такая гадость случилась, на одной из больших машин
не работает gprof. Выдает хрень по времени.
Тест такой, например:
#include <stdio.h>
#include <stdlib.h>
#define LEN 10000
float sum( int p, int s )
{
return (float)s+p;
}
float a[LEN][LEN];
float b[LEN][LEN];
float c[LEN][LEN];
int main(int argc, char *argv[])
{
int i, j;
for (j=0; j<LEN; j++)
for (i=0; i<LEN; i++)
{
a[i][j]=sum(i,j);
b[i][j]=(float)(i-j);
}
for (j=0; j<LEN; j++)
for (i=0; i<LEN; i++)
{
c[i][j]=b[i][j]/a[i][j];
}
exit(1);
}
Так эта сцуко врет со временем примерно в 10 раз. На других машинах
все хорошо. Апгрейдили glibc, glibc-profile, использовали новый gcc,
но это не спасало. Кто знает в чем дело? Программы там довольно
старые:
gcc (GCC) 3.3.3 (SuSE Linux)
Не работает и с pgi, sunstudio, pathscale.
Если вам встречался этот баг, расскажите какой и как лечится.
Не работает на любых тестах, не важно какие локальные или глобальные данные. Этот был лишь для примера. Там старье в glibc. Мы пытаемся понять в чем дело. Но пока не выходит. Я думал кто-то сталкивался или это стандартный баг. Ничего не нагуглилось (((