2011-07-26 49 views
4

我要處理舊的 C-源代碼。之後,我設法編譯它,而運行它我得到錯誤信息傳統代碼:mmap零頁:操作不允許 - 我應該從哪裏開始?

mmap zero page: Operation not permitted 

有時候跟一個分段故障

我讀過一些關於mmap()命令的東西,但是我無法避開,這個錯誤消息來自哪裏以及如何處理它。

我可以「重新啓用」嗎? (該程序曾用於舊版Linux系統)。

我與Ubuntu 11.04和GCC 3.4

非常感謝:-)

任何提示

感謝 工作馬庫斯

回答

7

映射零頁默認情況下禁用,作爲一種安全措施(這樣做可能會使某些NULL指針解除引用錯誤被利用)。

您可以通過將vm.mmap_min_addr sysctl設置爲0(也可在/proc/sys/vm/mmap_min_addr處獲得)來重新啓用它。您應該可以在Ubuntu上啓動時將其設置爲默認值,方法是將vm.mmap_min_addr = 0添加到/etc/sysctl.conf

+0

完美,似乎像一個魅力工作:-)真棒:D坦克很多! – Markus