为什么瓦尔格林德说杀死 9 对于一个非常简单的程序
Why is Valgrind saying killed 9 for a very simple program?
我在两个非常简单的'hello world'程序上运行valgrind
。它们都返回相同的错误:
laptop$ g++ hello.cpp -o hello
laptop$ valgrind ./hello
Killed: 9
laptop$ g++ hello2.cpp -o hello2
laptop$ valgrind ./hello2
Killed: 9
我的hello2.cpp看起来像这样:
#include <stdio.h>
int main(void)
{
printf("main.cn");
return 0;
}
另一个hello world程序只是使用来自iostream
的cout
而不是printf()
。需要注意的一件重要事情是,valgrind 在 Ubuntu 服务器 14.04 上按预期工作,这些失败的例子在我的运行 OSX 10.10 的新 Macbook Pro 上。我四处搜索,我找到的所有内容都与具有复杂内存问题的大型程序有关。
为什么我在 Mac 上收到此错误?
可能需要一段时间才能获得合理的功能支持,但由于最近的大量工作,Valgrind主干中已经提供了基本的OS X 10.10和OSX 10.11支持。
从邮件列表中:
最近有一些努力来改善瓦尔格林德对 约塞米蒂。如果您在 Mac OS 上开发,您可能想尝试 中继 (SVN Co svn://svn.valgrind.org/valgrind/trunk( 并报告任何 你得到的破损。对优胜美地的支持足够好,至少 一个大型图形应用程序(Firefox(运行正常。 支持 以前的版本10.9(Mavericks(也得到了实质性的改进。
请注意,这项工作仅针对 64 位进程。 32 位可能 工作,在小牛队可能会更好,但我怀疑它会是 由于瓦尔格林德的 32 位 x86,优胜美地的问题越来越多 指令集支持未通过 SSSE3。
朱利安·苏厄德
http://sourceforge.net/p/valgrind/mailman/message/33047840/
完全披露:我是新的Valgrind开发人员之一,他们为支持OS X 10.10和OS X 10.11贡献了补丁
看到这个答案。简短版本:
brew install --HEAD valgrind
使用包管理器(如 apt-get
(在 OSX 10.10 上安装 valgrind
是不可靠的。使用以下链接从源代码下载和构建:
http://ranf.tl/2014/11/28/valgrind-on-mac-os-x-10-10-yosemite/
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 我从int x[3]得到的一个非常奇怪的输出;
- 一个非常简单的win32套接字代码,但工作错误
- 超过CPU时间限制:当MPI_Sent一个非常大的int*时
- 无法使用crfsuite的C++ API编译一个非常简单的Tagger示例
- C++中一个非常简单的枚举类错误
- 我的代码仅适用于一个输入.请指教
- 我在内存泄漏和字符串方面遇到了一个非常奇怪的问题
- 我正在写一个非常简单的字母评分系统,if语句是最有效的吗?
- 我刚刚创建了一个非常快速的素数排序方法.如何改进?
- 在64位系统上创建一个非常大的数组的缺点是什么
- (c++)代码中一个非常奇怪的问题
- 打印出一个非常小的浮点数
- C++:C字符串、指针和一个非常有趣的while循环
- 在 matlab 中编写一个非常基本的 mex 函数
- 在C 中编写一个非常简单的事件类
- 如何取一个非常大的数的根
- 在使用Qt Creator创建一个非常简单的项目时,在Qt中遇到"segmentation fault"
- 使用C++计算一个非常大的幂
- 外部声明变量的定义适用于一个函数,但不适用于另一个函数