2015-12-21 3 views
1

Я пытаюсь получить память, используемую другим процессом. Из того, что я прочитал, мне кажется, что мне нужно использовать mach_vm_regeion. Я нашел код на случайном форуме и попробовал компиляцию, чтобы убедиться, что я понял, как он работает, но я получаю эту ошибку.OS X запрограммировать память процесса

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 
+0

http://www.sagenb.org/src/misc/darwin_memory_usage.c Вы использовали правильный вариант? – pvg

+0

Извините, я полностью забыл добавить фрагмент кода. Я считаю, что у меня есть все необходимое. Здесь http://pastie.org/10644474 – janovak

ответ

2

Вы не правильно включает. Я считаю, что

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

работает. Вам также необходимо изменить: vm_size_t size - mach_vm_size_t size, который является функцией, которую ожидает функция. Затем он компилируется и работает так, как ожидалось (при запуске как root, как указывает комментарий).

Смежные вопросы