Change ktrdump to use the more standard -M/-N flags to specify the path
to a crash dump and kernel, respectively. The existing -m/-e flags are still supported for backwards compatiblity but are no longer documented. Requested by: np MFC after: 2 weeks
This commit is contained in:
parent
f418f79ce2
commit
330c544318
@ -25,7 +25,7 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd March 8, 2005
|
||||
.Dd February 6, 2015
|
||||
.Dt KTRDUMP 8
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -34,9 +34,9 @@
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl cfqrtH
|
||||
.Op Fl e Ar execfile
|
||||
.Op Fl i Ar ktrfile
|
||||
.Op Fl m Ar corefile
|
||||
.Op Fl M Ar core
|
||||
.Op Fl N Ar system
|
||||
.Op Fl o Ar outfile
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
@ -44,7 +44,7 @@ The
|
||||
utility is used to dump the contents of the kernel ktr trace buffer.
|
||||
.Pp
|
||||
The following options are available:
|
||||
.Bl -tag -width ".Fl e Ar execfile"
|
||||
.Bl -tag -width ".Fl i Ar ktrfile"
|
||||
.It Fl c
|
||||
Print the CPU number that each entry was logged from.
|
||||
.It Fl f
|
||||
@ -61,11 +61,11 @@ Print the thread ID for each entry.
|
||||
File containing saved ktr trace events; for more information see the
|
||||
.Xr ktr 4
|
||||
manual page.
|
||||
.It Fl e Ar execfile
|
||||
.It Fl N Ar system
|
||||
The kernel image to resolve symbols from.
|
||||
The default is the value returned via
|
||||
.Xr getbootfile 3 .
|
||||
.It Fl m Ar corefile
|
||||
.It Fl M Ar core
|
||||
The core file or memory image to read from.
|
||||
The default is
|
||||
.Pa /dev/mem .
|
||||
|
@ -46,7 +46,7 @@ __FBSDID("$FreeBSD$");
|
||||
|
||||
#define SBUFLEN 128
|
||||
#define USAGE \
|
||||
"usage: ktrdump [-cfqrtH] [-e execfile] [-i ktrfile] [-m corefile] [-o outfile]\n"
|
||||
"usage: ktrdump [-cfqrtH] [-i ktrfile] [-M core] [-N system] [-o outfile]\n"
|
||||
|
||||
static void usage(void);
|
||||
|
||||
@ -59,9 +59,9 @@ static struct nlist nl[] = {
|
||||
};
|
||||
|
||||
static int cflag;
|
||||
static int eflag;
|
||||
static int fflag;
|
||||
static int mflag;
|
||||
static int Mflag;
|
||||
static int Nflag;
|
||||
static int qflag;
|
||||
static int rflag;
|
||||
static int tflag;
|
||||
@ -103,16 +103,17 @@ main(int ac, char **av)
|
||||
* Parse commandline arguments.
|
||||
*/
|
||||
out = stdout;
|
||||
while ((c = getopt(ac, av, "cfqrtHe:i:m:o:")) != -1)
|
||||
while ((c = getopt(ac, av, "cfqrtHe:i:m:M:N:o:")) != -1)
|
||||
switch (c) {
|
||||
case 'c':
|
||||
cflag = 1;
|
||||
break;
|
||||
case 'N':
|
||||
case 'e':
|
||||
if (strlcpy(execfile, optarg, sizeof(execfile))
|
||||
>= sizeof(execfile))
|
||||
errx(1, "%s: File name too long", optarg);
|
||||
eflag = 1;
|
||||
Nflag = 1;
|
||||
break;
|
||||
case 'f':
|
||||
fflag = 1;
|
||||
@ -122,11 +123,12 @@ main(int ac, char **av)
|
||||
if ((in = open(optarg, O_RDONLY)) == -1)
|
||||
err(1, "%s", optarg);
|
||||
break;
|
||||
case 'M':
|
||||
case 'm':
|
||||
if (strlcpy(corefile, optarg, sizeof(corefile))
|
||||
>= sizeof(corefile))
|
||||
errx(1, "%s: File name too long", optarg);
|
||||
mflag = 1;
|
||||
Mflag = 1;
|
||||
break;
|
||||
case 'o':
|
||||
if ((out = fopen(optarg, "w")) == NULL)
|
||||
@ -157,8 +159,8 @@ main(int ac, char **av)
|
||||
* Open our execfile and corefile, resolve needed symbols and read in
|
||||
* the trace buffer.
|
||||
*/
|
||||
if ((kd = kvm_openfiles(eflag ? execfile : NULL,
|
||||
mflag ? corefile : NULL, NULL, O_RDONLY, errbuf)) == NULL)
|
||||
if ((kd = kvm_openfiles(Nflag ? execfile : NULL,
|
||||
Mflag ? corefile : NULL, NULL, O_RDONLY, errbuf)) == NULL)
|
||||
errx(1, "%s", errbuf);
|
||||
if (kvm_nlist(kd, nl) != 0 ||
|
||||
kvm_read(kd, nl[0].n_value, &version, sizeof(version)) == -1)
|
||||
|
Loading…
Reference in New Issue
Block a user