man.bsd.lv manual page server

Manual Page Search Parameters

KVM_NLIST(3) Library Functions Manual KVM_NLIST(3)

kvm_nlist, kvm_nlist2retrieve symbol table names from a kernel image

library “libkvm”

#include <kvm.h>
#include <nlist.h>

int
kvm_nlist(kvm_t *kd, struct nlist *nl);

int
kvm_nlist2(kvm_t *kd, struct kvm_nlist *nl);

The () function retrieves the symbol table entries indicated by the name list argument nl. This argument points to an array of nlist structures, terminated by an entry whose n_name field is NULL (see nlist(3)). Each symbol is looked up using the n_name field, and if found, the corresponding n_type and n_value fields are filled in. These fields are set to 0 if the symbol is not found.

The kldsym(2) system call is used to locate symbols in live kernels. This is a less than perfect emulation of the nlist values but has the advantage of being aware of kernel modules and is reasonably fast.

The () function retrieves the symbol table entries indicated by the name list argument nl. This argument points to an array of struct kvm_nlist structures, terminated by an entry whose n_name field is NULL These structures are similar to the nlist structures used by kvm_nlist() except that the n_value field uses a different type (kvaddr_t) to avoid truncation when examining non-native kernel images.

The kvm_nlist() and kvm_nlist2() functions return the number of invalid entries found. If the kernel symbol table was unreadable, -1 is returned.

kldsym(2), kvm(3), kvm_close(3), kvm_getargv(3), kvm_getenvv(3), kvm_geterr(3), kvm_getprocs(3), kvm_native(3), kvm_open(3), kvm_openfiles(3), kvm_read(3), kvm_write(3)

November 27, 2015 FreeBSD-12.0