簡體   English   中英

OS X以編程方式獲取進程的內存

[英]OS X get process's memory programmatically

我試圖獲取另一個進程使用的內存。 從我閱讀的內容來看,似乎需要使用mach_vm_regeion 我在一個隨機論壇上找到了一些代碼,並嘗試進行編譯以確保我了解它的工作方式,但出現此錯誤。

error: use of undeclared identifier 'mach_vm_region'
      kret = mach_vm_region(task, &address, &size, VM_REGION_BASIC_INFO, (vm_regio...
             ^
1 error generated.

我在OS X 10.11.2上使用clang++ --std=c++11 file.cpp

clang --version返回

Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin15.2.0
Thread model: posix

您沒有正確的包含。 我發現

#include <mach/mach.h>
#include <mach/mach_vm.h>

作品。 您還需要更改: vm_size_t size更改為mach_vm_size_t size ,這是函數期望的類型。 然后,它會按預期進行編譯和工作(如注釋所示,以root身份運行時)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM