summaryrefslogtreecommitdiff
path: root/usr.bin/ktrdump
diff options
context:
space:
mode:
authorNeel Natu <neel@FreeBSD.org>2014-03-14 22:07:08 +0000
committerNeel Natu <neel@FreeBSD.org>2014-03-14 22:07:08 +0000
commit3447a66db8ac9f43c11d14926fd5dc90fe22b4fa (patch)
treec4345593ab9cf371f28dd4ff187fb5b222b22775 /usr.bin/ktrdump
parent61346cbdc7dcc2ba29d535023c75e0c107cd2be8 (diff)
downloadsrc-test2-3447a66db8ac9f43c11d14926fd5dc90fe22b4fa.tar.gz
src-test2-3447a66db8ac9f43c11d14926fd5dc90fe22b4fa.zip
Notes
Diffstat (limited to 'usr.bin/ktrdump')
-rw-r--r--usr.bin/ktrdump/ktrdump.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/usr.bin/ktrdump/ktrdump.c b/usr.bin/ktrdump/ktrdump.c
index d55aa72dc771..11e78e92bf8b 100644
--- a/usr.bin/ktrdump/ktrdump.c
+++ b/usr.bin/ktrdump/ktrdump.c
@@ -93,7 +93,7 @@ main(int ac, char **av)
char *p;
int version;
int entries;
- int index;
+ int index, index2;
int parm;
int in;
int c;
@@ -182,7 +182,8 @@ main(int ac, char **av)
if (kvm_read(kd, nl[2].n_value, &index, sizeof(index)) == -1 ||
kvm_read(kd, nl[3].n_value, &bufptr,
sizeof(bufptr)) == -1 ||
- kvm_read(kd, bufptr, buf, sizeof(*buf) * entries) == -1)
+ kvm_read(kd, bufptr, buf, sizeof(*buf) * entries) == -1 ||
+ kvm_read(kd, nl[2].n_value, &index2, sizeof(index2)) == -1)
errx(1, "%s", kvm_geterr(kd));
}
@@ -289,7 +290,14 @@ next: if ((c = *p++) == '\0')
parms[4], parms[5]);
fprintf(out, "\n");
if (!iflag) {
- if (i == index)
+ /*
+ * 'index' and 'index2' are the values of 'ktr_idx'
+ * before and after the KTR buffer was copied into
+ * 'buf'. Since the KTR entries between 'index' and
+ * 'index2' were in flux while the KTR buffer was
+ * being copied to userspace we don't dump them.
+ */
+ if (i == index2)
break;
if (--i < 0)
i = entries - 1;