2016-04-02 133 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的接受答案的開頭部分。 –

相關問題