我刚刚开始使用C编程(跟随'C The Hard Way') - 随时我尝试运行valgrind我终于在终端中遇到Segmentation故障。
I've installed and reinstalled valgrind
这里有什么建议吗?
答案 0 :(得分:2)
Valgrind永远不应该是段错误 - 应该运行每个(甚至是错误的)程序并拦截问题。
如果你为valgrind true
之类的无害命令获得段错误,我建议你为你的操作系统下载预编译的valgrind二进制文件,可能是它的包管理器。编译时遇到类似的问题(可能是编译器中的错误,源代码和编译器之间的不兼容性,错误的库......)。如果你还在学习,你可能不想深入研究。
如果valgrind仅在您的程序中报告段错误,请发布其消息。这意味着您的程序中存在错误。
答案 1 :(得分:1)
哪个程序是SEGV错误,valgrind
本身或您自己的程序?
如果是你的程序,你可以在启用调试的情况下编译它(在Linux上使用gcc -g
),然后在调试器中运行它(在Linux上为gdb
)。
如果它本身是valgrind
,因为你是新手,你运气不好,但你仍然可以用传统方式调试你的程序(使用gdb
)。使用gdb
是documented here