Getting region date per process in Darwin

This commit is contained in:
David Carlier 2019-09-15 14:05:00 +01:00
parent 888efc1b36
commit 819a661be5
2 changed files with 13 additions and 0 deletions

View File

@ -396,6 +396,18 @@ size_t zmalloc_get_smap_bytes_by_field(char *field, long pid) {
}
#else
size_t zmalloc_get_smap_bytes_by_field(char *field, long pid) {
#if defined(__APPLE__)
struct proc_regioninfo pri;
if (proc_pidinfo(pid, PROC_PIDREGIONINFO, 0, &pri, PROC_PIDREGIONINFO_SIZE) ==
PROC_PIDREGIONINFO_SIZE) {
if (!strcmp(field, "Private_Dirty")) {
return (size_t)pri.pri_pages_dirtied * 4096;
} else if (!strcmp(field, "Rss")) {
return (size_t)pri.pri_pages_resident * 4096;
}
}
return 0;
#endif
((void) field);
((void) pid);
return 0;

View File

@ -57,6 +57,7 @@
#elif defined(__APPLE__)
#include <malloc/malloc.h>
#include <libproc.h>
#define HAVE_MALLOC_SIZE 1
#define zmalloc_size(p) malloc_size(p)
#endif