valgrind:mmap(0x600000, 8192) 在 UME 中失败,错误 12(无法分配内存)
valgrind: mmap(0x600000, 8192) failed in UME with error 12 (Cannot allocate memory)
我在关注 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).
我该如何解决?
我正在使用 Ubuntu 14.04 LTS,内核版本为 4.4.0
您遇到的错误其实是内核bug,后续版本已经修复。此处有更多详细信息:
https://bugzilla.redhat.com/show_bug.cgi?id=1301093
为了克服错误,我建议您更新内核。
注意:我自己在内核版本 3.16.0-67 上使用 运行 Ubuntu 14.04,它运行起来没有任何问题。
编辑:正如OP在评论中指出的那样,该错误已在内核版本4.5.2中修复。
我在关注 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).
我该如何解决?
我正在使用 Ubuntu 14.04 LTS,内核版本为 4.4.0
您遇到的错误其实是内核bug,后续版本已经修复。此处有更多详细信息:
https://bugzilla.redhat.com/show_bug.cgi?id=1301093
为了克服错误,我建议您更新内核。
注意:我自己在内核版本 3.16.0-67 上使用 运行 Ubuntu 14.04,它运行起来没有任何问题。
编辑:正如OP在评论中指出的那样,该错误已在内核版本4.5.2中修复。