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
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=263879
@ -28,7 +28,7 @@
|
||||
.\" @(#)kdump.1 8.1 (Berkeley) 6/6/93
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd June 4, 2012
|
||||
.Dd March 28, 2014
|
||||
.Dt KDUMP 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -36,7 +36,7 @@
|
||||
.Nd display kernel trace data
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl dEnlHRsTA
|
||||
.Op Fl dEnlHRSsTA
|
||||
.Op Fl f Ar trfile
|
||||
.Op Fl m Ar maxdata
|
||||
.Op Fl p Ar pid
|
||||
@ -95,6 +95,8 @@ Display relative timestamps (time since previous entry).
|
||||
.It Fl r
|
||||
When decoding STRU records, display structure members such as UIDs,
|
||||
GIDs, dates etc. symbolically instead of numerically.
|
||||
.It Fl S
|
||||
Display system call numbers.
|
||||
.It Fl s
|
||||
Suppress display of I/O data.
|
||||
.It Fl T
|
||||
|
@ -123,7 +123,7 @@ void ioctlname(unsigned long, int);
|
||||
#define TIMESTAMP_RELATIVE 0x4
|
||||
|
||||
int timestamp, decimal, fancy = 1, suppressdata, tail, threads, maxdata,
|
||||
resolv = 0, abiflag = 0;
|
||||
resolv = 0, abiflag = 0, syscallno = 0;
|
||||
const char *tracefile = DEF_TRACEFILE;
|
||||
struct ktr_header ktr_header;
|
||||
|
||||
@ -261,7 +261,7 @@ main(int argc, char *argv[])
|
||||
|
||||
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) {
|
||||
case 'A':
|
||||
abiflag = 1;
|
||||
@ -287,6 +287,9 @@ main(int argc, char *argv[])
|
||||
case 'r':
|
||||
resolv = 1;
|
||||
break;
|
||||
case 'S':
|
||||
syscallno = 1;
|
||||
break;
|
||||
case 's':
|
||||
suppressdata = 1;
|
||||
break;
|
||||
@ -678,8 +681,11 @@ ktrsyscall(struct ktr_syscall *ktr, u_int flags)
|
||||
if ((flags != 0 && ((flags & SV_ABI_MASK) != SV_ABI_FREEBSD)) ||
|
||||
(ktr->ktr_code >= nsyscalls || ktr->ktr_code < 0))
|
||||
printf("[%d]", ktr->ktr_code);
|
||||
else
|
||||
else {
|
||||
printf("%s", syscallnames[ktr->ktr_code]);
|
||||
if (syscallno)
|
||||
printf("[%d]", ktr->ktr_code);
|
||||
}
|
||||
ip = &ktr->ktr_args[0];
|
||||
if (narg) {
|
||||
char c = '(';
|
||||
@ -1271,8 +1277,12 @@ ktrsysret(struct ktr_sysret *ktr, u_int flags)
|
||||
if ((flags != 0 && ((flags & SV_ABI_MASK) != SV_ABI_FREEBSD)) ||
|
||||
(code >= nsyscalls || code < 0))
|
||||
printf("[%d] ", code);
|
||||
else
|
||||
printf("%s ", syscallnames[code]);
|
||||
else {
|
||||
printf("%s", syscallnames[code]);
|
||||
if (syscallno)
|
||||
printf("[%d]", code);
|
||||
printf(" ");
|
||||
}
|
||||
|
||||
if (error == 0) {
|
||||
if (fancy) {
|
||||
@ -1910,8 +1920,11 @@ linux_ktrsyscall(struct ktr_syscall *ktr)
|
||||
|
||||
if (ktr->ktr_code >= nlinux_syscalls || ktr->ktr_code < 0)
|
||||
printf("[%d]", ktr->ktr_code);
|
||||
else
|
||||
else {
|
||||
printf("%s", linux_syscallnames[ktr->ktr_code]);
|
||||
if (syscallno)
|
||||
printf("[%d]", ktr->ktr_code);
|
||||
}
|
||||
ip = &ktr->ktr_args[0];
|
||||
if (narg) {
|
||||
char c = '(';
|
||||
@ -1931,8 +1944,12 @@ linux_ktrsysret(struct ktr_sysret *ktr)
|
||||
|
||||
if (code >= nlinux_syscalls || code < 0)
|
||||
printf("[%d] ", code);
|
||||
else
|
||||
printf("%s ", linux_syscallnames[code]);
|
||||
else {
|
||||
printf("%s", linux_syscallnames[code]);
|
||||
if (syscallno)
|
||||
printf("[%d]", code);
|
||||
printf(" ");
|
||||
}
|
||||
|
||||
if (error == 0) {
|
||||
if (fancy) {
|
||||
@ -1965,7 +1982,7 @@ linux_ktrsysret(struct ktr_sysret *ktr)
|
||||
void
|
||||
usage(void)
|
||||
{
|
||||
fprintf(stderr, "usage: kdump [-dEnlHRrsTA] [-f trfile] "
|
||||
fprintf(stderr, "usage: kdump [-dEnlHRrSsTA] [-f trfile] "
|
||||
"[-m maxdata] [-p pid] [-t trstr]\n");
|
||||
exit(1);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user