C语言:valgrind的分段错误

时间:2011-10-28 17:42:14

标签: c terminal valgrind

我刚刚开始使用C编程(跟随'C The Hard Way') - 随时我尝试运行valgrind我终于在终端中遇到Segmentation故障。

I've installed and reinstalled valgrind

这里有什么建议吗?

2 个答案:

答案 0 :(得分:2)

Valgrind永远不应该是段错误 - 应该运行每个(甚至是错误的)程序并拦截问题。

如果你为valgrind true之类的无害命令获得段错误,我建议你为你的操作系统下载预编译的valgrind二进制文件,可能是它的包管理器。编译时遇到类似的问题(可能是编译器中的错误,源代码和编译器之间的不兼容性,错误的库......)。如果你还在学习,你可能不想深入研究。

如果valgrind仅在您的程序中报告段错误,请发布其消息。这意味着您的程序中存在错误。

答案 1 :(得分:1)

哪个程序是SEGV错误,valgrind本身或您自己的程序?

如果是你的程序,你可以在启用调试的情况下编译它(在Linux上使用gcc -g),然后在调试器中运行它(在Linux上为gdb)。

如果它本身是valgrind,因为你是新手,你运气不好,但你仍然可以用传统方式调试你的程序(使用gdb)。使用gdbdocumented here