如果目标应用程序使用fopen函数,英特尔Pin会出现分段错误?

问题描述

我目前正在使用Intel Pin来跟踪某些应用程序的内存访问。但是我发现,如果目标应用程序使用了fopen()函数,则Pinatrace工具会因分段错误而崩溃。这是我正在使用的测试代码

int main(){
    
    int i;

    ***************
    FILE *f = fopen("./test.txt","r");
    while(!feof(f))
        fscanf(f,"%d",&i);
    fclose(f);
    printf("value of i is %d.\n",i);
    ***************

    printf("hope it works.\n");
    multiply();
  
  return 0;
}

int multiply()
{
    int i,sum;
    sum = 0;
    int *A = (int *)malloc(sizeof(int) * 10);
    int *B = (int *)malloc(sizeof(int) * 10);
    for(i = 0; i < 10; i++)
    {
        A[i] = i;
        B[i] = i;
    }
    for(i = 1; i < 10; i++)
        sum += A[i] * B[i];
    printf("value of sum is %d.\n",sum);
    
    return 0;
}

如果我对*****之间的界线进行注释,一切都很好,这就是为什么我认为故障与fopen()函数有关。

我已经在这里停留了一个星期,希望得到您的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)