tail head cat sleep
QR code linking to this page

Manual Pages  — KVM_NLIST

NAME

kvm_nlist, kvm_nlist2 – retrieve symbol table names from a kernel image

CONTENTS

LIBRARY

Kernel Data Access Library (libkvm, -lkvm)

SYNOPSIS

#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);

DESCRIPTION

The kvm_nlist() function retrieves the symbol table entries indicated by the name list argument amp;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 kvm_nlist2() 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.

RETURN VALUES

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

SEE ALSO

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)

KVM_NLIST (3) November 27, 2015

tail head cat sleep
QR code linking to this page


Please direct any comments about this manual page service to Ben Bullock. Privacy policy.

Like a classics radio station whose play list spans decades, Unix simultaneously exhibits its mixed and dated heritage. There's Clash-era graphics interfaces; Beatles-era two-letter command names; and systems programs (for example, ps) whose terse and obscure output was designed for slow teletypes; Bing Crosby-era command editing (# and @ are still the default line editing commands), and Scott Joplin-era core dumps.
— The Unix Haters' handbook