summaryrefslogtreecommitdiffstats
path: root/lib/libkvm/kvm_proc.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1999-12-27 07:14:58 +0000
committerpeter <peter@FreeBSD.org>1999-12-27 07:14:58 +0000
commit047fa82dd05146cf34e7c0f9fe16e2f4a5fa741f (patch)
treebf612c2f85cc36d2b54233162227b2975c37fd0a /lib/libkvm/kvm_proc.c
parent04cead132ddb264f917bbce4fd71d663b16aa645 (diff)
downloadFreeBSD-src-047fa82dd05146cf34e7c0f9fe16e2f4a5fa741f.zip
FreeBSD-src-047fa82dd05146cf34e7c0f9fe16e2f4a5fa741f.tar.gz
Use kldsym(2) to lookup symbol values. This avoids the kvm_mkdb juggling
and is module aware. Yes, this means that kvm_nlist(3) will find symbols in loaded modules. The emulation of the nlist struct is pretty crude but seems to work well enough for all the users in the tree that I found.
Diffstat (limited to 'lib/libkvm/kvm_proc.c')
-rw-r--r--lib/libkvm/kvm_proc.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/libkvm/kvm_proc.c b/lib/libkvm/kvm_proc.c
index feba974..3490bd4 100644
--- a/lib/libkvm/kvm_proc.c
+++ b/lib/libkvm/kvm_proc.c
@@ -70,7 +70,6 @@ static char sccsid[] = "@(#)kvm_proc.c 8.3 (Berkeley) 9/23/93";
#include <limits.h>
#include <memory.h>
-#include <db.h>
#include <paths.h>
#include "kvm_private.h"
@@ -675,6 +674,12 @@ kvm_getargv(kd, kp, nchr)
static char **bufp;
static int argc;
+ if (!ISALIVE(kd)) {
+ _kvm_err(kd, kd->program,
+ "cannot read user space from dead kernel");
+ return (0);
+ }
+
if (!buflen) {
l = sizeof(buflen);
i = sysctlbyname("kern.ps_arg_cache_limit",
OpenPOWER on IntegriCloud