【发布时间】:2017-04-11 12:03:38
【问题描述】:
我在关注this exercise。此页面有安装 Valgrind 3.6.1 的说明,但我当前的 Linux 内核版本不支持此版本的 Valgrind。因此,我安装了 Valgrind 3.11.0 并在运行此命令之后按照那里的说明进行操作:
$ valgrind ./ex4
收到此错误:
valgrind: mmap(0x600000, 8192) failed in UME with error 12 (Cannot allocate memory).
我该如何解决?
我使用的是内核版本为 4.4.0 的 Ubuntu 14.04 LTS
【问题讨论】:
-
抱歉,您到底想完成什么?你想安装它吗?你想在你的一个程序上测试它的分段错误吗?
-
您似乎打算提供对您尝试运行的代码的引用。可以加网址吗?您是否有合理配置的机器或具有足够内存的虚拟机?你已经能够在任何其他程序上运行 Valgrind 了吗?您是在 32 位还是 64 位版本上运行?尽管您使用的文章/链接必须相当旧才能建议 Valgrind 3.6.1,但升级到 3.11.0 是正确的,并且新版本的工作方式应该与旧版本一样.
-
我使用的是原生 linux 机器。我无法在任何程序上运行 Valgrind。我的 linux 机器是 64 位的。我已经为我正在关注的说明和代码添加了一个网址
-
@abhishek_naik:那个链接非常准确——也许你应该把它转换成答案。 (如果你这样做了,请告诉我——例如对此的回应评论。) Shyam:你几乎肯定需要获得 Valgrind 的更新版本(可能来自源代码)才能正常工作。这不是你的错:你本身并没有做错什么,但是 Linux 内核在
valgrind下发生了变化,它比许多程序更容易受到内核变化的影响。