2013-04-10 134 views
1

在osx上,我做了一個小程序來編輯我的進程的內存(主要是在Flash遊戲中作弊)。我試着在很長一段時間後重新編譯這個程序,並且我意識到我升級了我的操作系統(並且更換了我的筆記本電腦)並更換了一些東西。下面我就10.7.5vm_region找不到

我有一個鏈接錯誤:

Undefined symbols for architecture x86_64: 
    "_vm_region", referenced from: 
... 

但是我沒有找到任何鏈接庫,以獲得vm_region功能。 我沒有爲vm_region和大部分/ usr/include/mach部分安裝任何手冊頁!

任何意見,以便能夠重新編譯該程序?我在哪裏可以找到這些手冊頁?

回答

1

這就是你正在尋找的mach_vm_region,Xoff。這些API已在10.5中重新命名。所以vm_ * API成爲mach_vm_ *。 「_」只是鏈接符號前綴。做一個搜索/替換,它應該工作。您可能還需要調整標題。這些API本身(有意)是未公開的,除了與內核源代碼(來自opensource.apple.com的XNU包)一起打包的一些HTML手冊頁。

+0

事情發生了轉變已。我重命名了需要編譯的內容,但它不再工作。 mach_vm_region給了我一個錯誤:無效的參數。通過vm_region,我可以通過將大部分參數設置爲0來獲取進程的第一個內存區域(除了任務)。它現在似乎不以相同的方式工作。你有想法嗎? – Xoff 2013-04-11 05:14:04

+0

好吧,我瀏覽內核的來源。沒有好的網頁,但消息來源是可以理解的。感謝指向opensource.apple.com的指針。 – Xoff 2013-04-12 07:44:15

0

我有此錯誤消息彈出時,我試圖用「vm_region」在64位的過程,應當使用「vm_region_64」用適當的PARAMS

mach_msg_type_number_t info_count = VM_REGION_BASIC_INFO_COUNT_64;