kinfo_getvmmap
—
function for getting per-process memory map
information
System Utilities Library (libutil,
-lutil)
This function is used for obtaining virtual memory mapping
information of a particular process.
The pid field contains the process
identifier. This should be the a process that you have privilege to access.
The cntp field is allows the caller to know how many
records are returned.
This function is a wrapper around
sysctl(3)
with the KERN_PROC_VMMAP
mib. While the kernel
returns a packed structure, this function expands the data into a fixed
record format.
On success the kinfo_getvmmap
() function
returns a pointer to an array of struct kinfo_vmentry
structures as defined by
<sys/user.h>
. The array was
obtained by an internal call to
malloc(3)
and must be freed by the caller with a call to
free(3).
On failure the kinfo_getvmmap
() function returns
NULL
.
The kinfo_getvmmap
() function first
appeared in FreeBSD 7.0.
kinfo_getvmmap
() calls can cause
significant CPU consumption because calculating the residency counts
requires iterating over all memory pages of the process. Setting the sysctl
variable kern.proc_vmmap_skip_resident_count to 1
prevents this calculation.