Skip site navigation (1)Skip section navigation (2)

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
KVM(3)		       FreeBSD Library Functions Manual			KVM(3)

     kvm -- kernel memory interface

     Kernel Data Access	Library	(libkvm, -lkvm)

     The kvm library provides a	uniform	interface for accessing	kernel virtual
     memory images, including live systems and crash dumps.  Access to live
     systems is	via sysctl(3) for some functions, and mem(4) and kmem(4) for
     other functions, while crash dumps	can be examined	via the	core file gen-
     erated by savecore(8).  The interface behaves similarly in	both cases.
     Memory can	be read	and written, kernel symbol addresses can be looked up
     efficiently, and information about	user processes can be gathered.

     The kvm_open() function is	first called to	obtain a descriptor for	all
     subsequent	calls.

     The kvm interface was first introduced in SunOS.  A considerable number
     of	programs have been developed that use this interface, making backward
     compatibility highly desirable.  In most respects,	the Sun	kvm interface
     is	consistent and clean.  Accordingly, the	generic	portion	of the inter-
     face (i.e., kvm_open(), kvm_close(), kvm_read(), kvm_write(), and
     kvm_nlist()) has been incorporated	into the BSD interface.	 Indeed, many
     kvm applications (i.e., debuggers and statistical monitors) use only this
     subset of the interface.

     The process interface was not kept.  This is not a	portability issue
     since any code that manipulates processes is inherently machine depen-

     Finally, the Sun kvm error	reporting semantics are	poorly defined.	 The
     library can be configured either to print errors to stderr	automatically,
     or	to print no error messages at all.  In the latter case,	the nature of
     the error cannot be determined.  To overcome this,	the BSD	interface
     includes a	routine, kvm_geterr(3),	to return (not print out) the error
     message corresponding to the most recent error condition on the given

     kvm_close(3), kvm_getargv(3), kvm_getenvv(3), kvm_geterr(3),
     kvm_getfiles(3), kvm_getloadavg(3), kvm_getprocs(3), kvm_getswapinfo(3),
     kvm_nlist(3), kvm_open(3),	kvm_openfiles(3), kvm_read(3), kvm_write(3),
     sysctl(3),	kmem(4), mem(4)

FreeBSD	9.2			April 25, 2010			   FreeBSD 9.2


Want to link to this manual page? Use this URL:

home | help