valgrind 中发生“非法指令(核心转储)”

5 c valgrind

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

非法指令(核心转储)。

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

#include<stdio.h>

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

int main()
{
    int j=90;
    fun(&j);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

abl*_*igh 6

valgrind已损坏,或与您的 C 库不兼容。

要确认这一点,首先看看您是否可以运行valgrind二进制文件:

valgrind --help
Run Code Online (Sandbox Code Playgroud)

(如果失败,可能是二进制文件已损坏或用于不同的架构)

然后在你没有写的东西中尝试:

valgrind /bin/true
Run Code Online (Sandbox Code Playgroud)

(如果失败,可能与您的 C 库不兼容)

假设其中一个或多个失败,您将需要重新安装并重valgrind试。