2016-04-02 115 views
4

我正在关注this exercise。本页面提供了安装Valgrind 3.6.1的说明,但我目前的Linux内核版本不支持此版本的Valgrind。所以,我安装Valgrind的3.11.0后并在运行此命令跟着指示有:valgrind:mmap(0x600000,8192)在UME中失败,错误12(无法分配内存)

$ valgrind ./ex4 

得到这个错误:

valgrind: mmap(0x600000, 8192) failed in UME with error 12 (Cannot allocate memory). 

如何解决呢?

我使用Ubuntu 14.04 LTS与内核版本4.4.0

+0

对不起,你究竟想要完成什么?你想安装它吗?你想测试一个程序的分段错误吗? –

+0

看起来你打算给你想要运行的代码提供参考。你可以添加网址吗?你有一个配置合理的机器或VM有足够的内存吗?你是否能够在其他程序上运行Valgrind?你在32位或64位版本上运行吗?虽然您使用的文章/链接必须相当陈旧才能提出Valgrind 3.6.1的建议,但您升级到3.11.0是正确的,而且新版本的功能应该与旧版本的功能完全相同。 –

+1

你需要这个:https://bugzilla.redhat.com/show_bug.cgi?id=1301093 –

回答

2

您遇到哪些错误实际上是一个内核的bug,这是固定在后续版本。更多细节在这里:
https://bugzilla.redhat.com/show_bug.cgi?id=1301093

为了克服这个错误,我建议你更新内核。
注意:我自己在内核版本3.16.0-67上运行Ubuntu 14.04,它运行时没有任何麻烦。

编辑:正如OP在评论中指出的那样,该bug在内核版本4.5.2中得到了修复。

+1

@ShyamSaini接受答案,如果你认为它有帮助 –

+0

@abhishek_naik我已经有我的机器与最新的Linux内核是4.4.0版本。正如你所说的,它正在使用内核版本3.16.0-67,但是我的机器运行的最新版本呢? – mysticTot

+0

@ShyamSaini,我建议你从另一个内核版本启动。如果您不确定如何从另一个版本启动,请参阅http://askubuntu.com/questions/738790/stopping-system-v-runlevel-compatibility-ubuntu-14-04-lts的接受答案的开头部分。 –

相关问题