繁体   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