Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F162743778
D16608.id.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D16608.id.diff
View Options
Index: head/usr.bin/kdump/kdump.c
===================================================================
--- head/usr.bin/kdump/kdump.c
+++ head/usr.bin/kdump/kdump.c
@@ -94,10 +94,10 @@
#include <casper/cap_pwd.h>
#endif
-u_int abidump(struct ktr_header *);
int fetchprocinfo(struct ktr_header *, u_int *);
+u_int findabi(struct ktr_header *);
int fread_tail(void *, int, int);
-void dumpheader(struct ktr_header *);
+void dumpheader(struct ktr_header *, u_int);
void ktrsyscall(struct ktr_syscall *, u_int);
void ktrsysret(struct ktr_sysret *, u_int);
void ktrnamei(char *, int);
@@ -466,10 +466,6 @@
drop_logged = 1;
}
}
- if (trpoints & (1<<ktr_header.ktr_type))
- if (pid == 0 || ktr_header.ktr_pid == pid ||
- ktr_header.ktr_tid == pid)
- dumpheader(&ktr_header);
if ((ktrlen = ktr_header.ktr_len) < 0)
errx(1, "bogus length 0x%x", ktrlen);
if (ktrlen > size) {
@@ -482,12 +478,13 @@
errx(1, "data too short");
if (fetchprocinfo(&ktr_header, (u_int *)m) != 0)
continue;
- sv_flags = abidump(&ktr_header);
if (pid && ktr_header.ktr_pid != pid &&
ktr_header.ktr_tid != pid)
continue;
if ((trpoints & (1<<ktr_header.ktr_type)) == 0)
continue;
+ sv_flags = findabi(&ktr_header);
+ dumpheader(&ktr_header, sv_flags);
drop_logged = 0;
switch (ktr_header.ktr_type) {
case KTR_SYSCALL:
@@ -588,56 +585,26 @@
}
u_int
-abidump(struct ktr_header *kth)
+findabi(struct ktr_header *kth)
{
struct proc_info *pi;
- const char *abi;
- const char *arch;
- u_int flags = 0;
TAILQ_FOREACH(pi, &trace_procs, info) {
if (pi->pid == kth->ktr_pid) {
- flags = pi->sv_flags;
- break;
+ return (pi->sv_flags);
}
}
-
- if (abiflag == 0)
- return (flags);
-
- switch (flags & SV_ABI_MASK) {
- case SV_ABI_LINUX:
- abi = "L";
- break;
- case SV_ABI_FREEBSD:
- abi = "F";
- break;
- case SV_ABI_CLOUDABI:
- abi = "C";
- break;
- default:
- abi = "U";
- break;
- }
-
- if (flags & SV_LP64)
- arch = "64";
- else if (flags & SV_ILP32)
- arch = "32";
- else
- arch = "00";
-
- printf("%s%s ", abi, arch);
-
- return (flags);
+ return (0);
}
void
-dumpheader(struct ktr_header *kth)
+dumpheader(struct ktr_header *kth, u_int sv_flags)
{
static char unknown[64];
static struct timeval prevtime, prevtime_e;
struct timeval temp;
+ const char *abi;
+ const char *arch;
const char *type;
const char *sign;
@@ -670,10 +637,6 @@
case KTR_SYSCTL:
type = "SCTL";
break;
- case KTR_PROCCTOR:
- /* FALLTHROUGH */
- case KTR_PROCDTOR:
- return;
case KTR_CAPFAIL:
type = "CAP ";
break;
@@ -731,6 +694,31 @@
}
}
printf("%s ", type);
+ if (abiflag != 0) {
+ switch (sv_flags & SV_ABI_MASK) {
+ case SV_ABI_LINUX:
+ abi = "L";
+ break;
+ case SV_ABI_FREEBSD:
+ abi = "F";
+ break;
+ case SV_ABI_CLOUDABI:
+ abi = "C";
+ break;
+ default:
+ abi = "U";
+ break;
+ }
+
+ if ((sv_flags & SV_LP64) != 0)
+ arch = "64";
+ else if ((sv_flags & SV_ILP32) != 0)
+ arch = "32";
+ else
+ arch = "00";
+
+ printf("%s%s ", abi, arch);
+ }
}
#include <sys/syscall.h>
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Jul 17, 10:36 AM (3 h, 23 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35163293
Default Alt Text
D16608.id.diff (3 KB)
Attached To
Mode
D16608: Remove spurious ABI tags from kdump output.
Attached
Detach File
Event Timeline
Log In to Comment