在valgrind中出现“非法指令(核心已转储)”错误

6
无论是什么程序,valgrind都会给出几乎相同的输出:

非法指令 (core dumped)。

即使在这个底层程序中,它也显示相同的内容。

#include<stdio.h>

void fun(int *i)
{
    printf(" %d \n",*i);
}

int main()
{
    int j=90;
    fun(&j);
    return 0;
}

4
你的代码没问题。也许是你的valgrind出了问题? - P.P
1
从软件包管理器安装Valgrind。 - amdixon
1个回答

7

您的valgrind存在问题,或者与您的C库不兼容。

为了确认这一点,首先请尝试运行valgrind二进制文件:

valgrind --help

如果失败了,可能是二进制文件损坏或适用于不同的架构。

然后尝试在您没有编写的程序中运行:

valgrind /bin/true

如果失败了,可能与您的C库不兼容。

假设其中一个或多个失败了,则需要重新安装valgrind,然后再试一次。


非常感谢,我期待这个解决方案。 - user5034652
我遇到了同样的问题,但是我可以正常运行 valgrind /bin/true。有什么想法吗? - brad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接