Add `-S' to display syscall numbers in the output as well.
This is useful for debugging compat modules. Sponsored by: EMC / Isilon Storage Division Obtained from: Isilon OneFS (based on work by Jeff Hughes) MFC after: 2 weeks
This commit is contained in:
parent
965cc255c9
commit
b9034ce23f
@ -28,7 +28,7 @@
|
|||||||
.\" @(#)kdump.1 8.1 (Berkeley) 6/6/93
|
.\" @(#)kdump.1 8.1 (Berkeley) 6/6/93
|
||||||
.\" $FreeBSD$
|
.\" $FreeBSD$
|
||||||
.\"
|
.\"
|
||||||
.Dd June 4, 2012
|
.Dd March 28, 2014
|
||||||
.Dt KDUMP 1
|
.Dt KDUMP 1
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@ -36,7 +36,7 @@
|
|||||||
.Nd display kernel trace data
|
.Nd display kernel trace data
|
||||||
.Sh SYNOPSIS
|
.Sh SYNOPSIS
|
||||||
.Nm
|
.Nm
|
||||||
.Op Fl dEnlHRsTA
|
.Op Fl dEnlHRSsTA
|
||||||
.Op Fl f Ar trfile
|
.Op Fl f Ar trfile
|
||||||
.Op Fl m Ar maxdata
|
.Op Fl m Ar maxdata
|
||||||
.Op Fl p Ar pid
|
.Op Fl p Ar pid
|
||||||
@ -95,6 +95,8 @@ Display relative timestamps (time since previous entry).
|
|||||||
.It Fl r
|
.It Fl r
|
||||||
When decoding STRU records, display structure members such as UIDs,
|
When decoding STRU records, display structure members such as UIDs,
|
||||||
GIDs, dates etc. symbolically instead of numerically.
|
GIDs, dates etc. symbolically instead of numerically.
|
||||||
|
.It Fl S
|
||||||
|
Display system call numbers.
|
||||||
.It Fl s
|
.It Fl s
|
||||||
Suppress display of I/O data.
|
Suppress display of I/O data.
|
||||||
.It Fl T
|
.It Fl T
|
||||||
|
@ -123,7 +123,7 @@ void ioctlname(unsigned long, int);
|
|||||||
#define TIMESTAMP_RELATIVE 0x4
|
#define TIMESTAMP_RELATIVE 0x4
|
||||||
|
|
||||||
int timestamp, decimal, fancy = 1, suppressdata, tail, threads, maxdata,
|
int timestamp, decimal, fancy = 1, suppressdata, tail, threads, maxdata,
|
||||||
resolv = 0, abiflag = 0;
|
resolv = 0, abiflag = 0, syscallno = 0;
|
||||||
const char *tracefile = DEF_TRACEFILE;
|
const char *tracefile = DEF_TRACEFILE;
|
||||||
struct ktr_header ktr_header;
|
struct ktr_header ktr_header;
|
||||||
|
|
||||||
@ -261,7 +261,7 @@ main(int argc, char *argv[])
|
|||||||
|
|
||||||
timestamp = TIMESTAMP_NONE;
|
timestamp = TIMESTAMP_NONE;
|
||||||
|
|
||||||
while ((ch = getopt(argc,argv,"f:dElm:np:AHRrsTt:")) != -1)
|
while ((ch = getopt(argc,argv,"f:dElm:np:AHRrSsTt:")) != -1)
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
case 'A':
|
case 'A':
|
||||||
abiflag = 1;
|
abiflag = 1;
|
||||||
@ -287,6 +287,9 @@ main(int argc, char *argv[])
|
|||||||
case 'r':
|
case 'r':
|
||||||
resolv = 1;
|
resolv = 1;
|
||||||
break;
|
break;
|
||||||
|
case 'S':
|
||||||
|
syscallno = 1;
|
||||||
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
suppressdata = 1;
|
suppressdata = 1;
|
||||||
break;
|
break;
|
||||||
@ -678,8 +681,11 @@ ktrsyscall(struct ktr_syscall *ktr, u_int flags)
|
|||||||
if ((flags != 0 && ((flags & SV_ABI_MASK) != SV_ABI_FREEBSD)) ||
|
if ((flags != 0 && ((flags & SV_ABI_MASK) != SV_ABI_FREEBSD)) ||
|
||||||
(ktr->ktr_code >= nsyscalls || ktr->ktr_code < 0))
|
(ktr->ktr_code >= nsyscalls || ktr->ktr_code < 0))
|
||||||
printf("[%d]", ktr->ktr_code);
|
printf("[%d]", ktr->ktr_code);
|
||||||
else
|
else {
|
||||||
printf("%s", syscallnames[ktr->ktr_code]);
|
printf("%s", syscallnames[ktr->ktr_code]);
|
||||||
|
if (syscallno)
|
||||||
|
printf("[%d]", ktr->ktr_code);
|
||||||
|
}
|
||||||
ip = &ktr->ktr_args[0];
|
ip = &ktr->ktr_args[0];
|
||||||
if (narg) {
|
if (narg) {
|
||||||
char c = '(';
|
char c = '(';
|
||||||
@ -1271,8 +1277,12 @@ ktrsysret(struct ktr_sysret *ktr, u_int flags)
|
|||||||
if ((flags != 0 && ((flags & SV_ABI_MASK) != SV_ABI_FREEBSD)) ||
|
if ((flags != 0 && ((flags & SV_ABI_MASK) != SV_ABI_FREEBSD)) ||
|
||||||
(code >= nsyscalls || code < 0))
|
(code >= nsyscalls || code < 0))
|
||||||
printf("[%d] ", code);
|
printf("[%d] ", code);
|
||||||
else
|
else {
|
||||||
printf("%s ", syscallnames[code]);
|
printf("%s", syscallnames[code]);
|
||||||
|
if (syscallno)
|
||||||
|
printf("[%d]", code);
|
||||||
|
printf(" ");
|
||||||
|
}
|
||||||
|
|
||||||
if (error == 0) {
|
if (error == 0) {
|
||||||
if (fancy) {
|
if (fancy) {
|
||||||
@ -1910,8 +1920,11 @@ linux_ktrsyscall(struct ktr_syscall *ktr)
|
|||||||
|
|
||||||
if (ktr->ktr_code >= nlinux_syscalls || ktr->ktr_code < 0)
|
if (ktr->ktr_code >= nlinux_syscalls || ktr->ktr_code < 0)
|
||||||
printf("[%d]", ktr->ktr_code);
|
printf("[%d]", ktr->ktr_code);
|
||||||
else
|
else {
|
||||||
printf("%s", linux_syscallnames[ktr->ktr_code]);
|
printf("%s", linux_syscallnames[ktr->ktr_code]);
|
||||||
|
if (syscallno)
|
||||||
|
printf("[%d]", ktr->ktr_code);
|
||||||
|
}
|
||||||
ip = &ktr->ktr_args[0];
|
ip = &ktr->ktr_args[0];
|
||||||
if (narg) {
|
if (narg) {
|
||||||
char c = '(';
|
char c = '(';
|
||||||
@ -1931,8 +1944,12 @@ linux_ktrsysret(struct ktr_sysret *ktr)
|
|||||||
|
|
||||||
if (code >= nlinux_syscalls || code < 0)
|
if (code >= nlinux_syscalls || code < 0)
|
||||||
printf("[%d] ", code);
|
printf("[%d] ", code);
|
||||||
else
|
else {
|
||||||
printf("%s ", linux_syscallnames[code]);
|
printf("%s", linux_syscallnames[code]);
|
||||||
|
if (syscallno)
|
||||||
|
printf("[%d]", code);
|
||||||
|
printf(" ");
|
||||||
|
}
|
||||||
|
|
||||||
if (error == 0) {
|
if (error == 0) {
|
||||||
if (fancy) {
|
if (fancy) {
|
||||||
@ -1965,7 +1982,7 @@ linux_ktrsysret(struct ktr_sysret *ktr)
|
|||||||
void
|
void
|
||||||
usage(void)
|
usage(void)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "usage: kdump [-dEnlHRrsTA] [-f trfile] "
|
fprintf(stderr, "usage: kdump [-dEnlHRrSsTA] [-f trfile] "
|
||||||
"[-m maxdata] [-p pid] [-t trstr]\n");
|
"[-m maxdata] [-p pid] [-t trstr]\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user