Download raw body.
Display the details of COMMAND using the ps command from the kernel crash dump.
Display the details of COMMAND using the ps command from the kernel crash dump.
Display the details of COMMAND using the ps command from the kernel crash dump.
ping
Mon April 8 2024 13:05 JST ASOU Masato <takeasou.masato@gmail.com>:
>
> ok, comments?
>
> Before apply patch:
> $ doas ps axe -N /var/crash/bsd.0 -M /var/crash/bsd.0.core
> PID TT STAT TIME COMMAND
> 1 ?? S 0:00.00 (init)
> 68923 ?? IpU 0:00.00 (resolvd)
> 76890 ?? RpU 0:00.01 (dhcpleased)
> 46069 ?? Sp 0:00.00 (dhcpleased)
> 21951 ?? IU 0:00.01 (dhcpleased)
> 93421 ?? RpU 0:00.01 (slaacd)
> 90234 ?? Sp 0:00.01 (slaacd)
> 89330 ?? Sp 0:00.00 (slaacd)
> 20157 ?? S 0:00.01 (sshd)
> 75440 ?? S 0:00.03 (sshd)
> 21027 ?? Ip 0:00.00 (cron)
> 35439 ?? I<pc 0:00.00 (sndiod)
> 22223 ?? IpU 0:00.00 (sndiod)
> 63060 ?? Ipc 0:00.01 (smtpd)
> 97728 ?? Ipc 0:00.01 (smtpd)
> 2094 ?? Ipc 0:00.01 (smtpd)
> 26623 ?? Ip 0:00.01 (smtpd)
> 82051 ?? Ipc 0:00.01 (smtpd)
> 4344 ?? Ipc 0:00.01 (smtpd)
> 98746 ?? Ip 0:00.01 (smtpd)
> 39326 ?? I 0:00.00 (sshd)
> 83362 ?? Ip 0:00.01 (ntpd)
> 72271 ?? I<pc 0:00.01 (ntpd)
> 15292 ?? S<pU 0:00.00 (ntpd)
> 95913 ?? Ipc 0:00.00 (pflogd)
> 98638 ?? IU 0:00.00 (pflogd)
> 54693 ?? Ipc 0:00.01 (syslogd)
> 71714 ?? SpU 0:00.00 (syslogd)
> 63047 p0 R+U 0:00.00 (sysctl)
> 17918 p0 Dp 0:00.01 (ksh)
> 17242 C0 I+pU 0:00.00 (getty)
> 46098 C1 I+pU 0:00.00 (getty)
> 70097 C2 I+pU 0:00.00 (getty)
> 30089 C3 I+pU 0:00.00 (getty)
> 61763 C5 I+pU 0:00.00 (getty)
>
> After apply patch:
> $ doas /usr/obj/bin/ps/ps ax -N /var/crash/bsd.0 -M /var/crash/bsd.0.core
> PID TT STAT TIME COMMAND
> 1 ?? S 0:00.00 /sbin/init
> 68923 ?? IpU 0:00.00 /sbin/resolvd
> 76890 ?? RpU 0:00.01 dhcpleased: frontend (dhcpleased)
> 46069 ?? Sp 0:00.00 dhcpleased: engine (dhcpleased)
> 21951 ?? IU 0:00.01 /sbin/dhcpleased
> 93421 ?? RpU 0:00.01 slaacd: frontend (slaacd)
> 90234 ?? Sp 0:00.01 slaacd: engine (slaacd)
> 89330 ?? Sp 0:00.00 /sbin/slaacd
> 20157 ?? S 0:00.01 sshd: asou@ttyp0 (sshd)
> 75440 ?? S 0:00.03 sshd: asou [priv] (sshd)
> 21027 ?? Ip 0:00.00 /usr/sbin/cron
> 35439 ?? I<pc 0:00.00 /usr/bin/sndiod
> 22223 ?? IpU 0:00.00 sndiod: helper (sndiod)
> 63060 ?? Ipc 0:00.01 smtpd: scheduler (smtpd)
> 97728 ?? Ipc 0:00.01 smtpd: queue (smtpd)
> 2094 ?? Ipc 0:00.01 smtpd: dispatcher (smtpd)
> 26623 ?? Ip 0:00.01 smtpd: lookup (smtpd)
> 82051 ?? Ipc 0:00.01 smtpd: control (smtpd)
> 4344 ?? Ipc 0:00.01 smtpd: crypto (smtpd)
> 98746 ?? Ip 0:00.01 /usr/sbin/smtpd
> 39326 ?? I 0:00.00 sshd: /usr/sbin/sshd [listener] 0 of 10-100
> startups (sshd)
> 83362 ?? Ip 0:00.01 ntpd: dns engine (ntpd)
> 72271 ?? I<pc 0:00.01 ntpd: ntp engine (ntpd)
> 15292 ?? S<pU 0:00.00 /usr/sbin/ntpd
> 95913 ?? Ipc 0:00.00 pflogd: [running] -s 160 -i pflog0 -f
> /var/log/pflog (pflogd)
> 98638 ?? IU 0:00.00 pflogd: [priv] (pflogd)
> 54693 ?? Ipc 0:00.01 /usr/sbin/syslogd
> 71714 ?? SpU 0:00.00 syslogd: [priv] (syslogd)
> 63047 p0 R+U 0:00.00 sysctl ddb.trigger
> 17918 p0 Dp 0:00.01 -ksh (ksh)
> 17242 C0 I+pU 0:00.00 /usr/libexec/getty std.9600 ttyC0
> 46098 C1 I+pU 0:00.00 /usr/libexec/getty std.9600 ttyC1
> 70097 C2 I+pU 0:00.00 /usr/libexec/getty std.9600 ttyC2
> 30089 C3 I+pU 0:00.00 /usr/libexec/getty std.9600 ttyC3
> 61763 C5 I+pU 0:00.00 /usr/libexec/getty std.9600 ttyC5
> $ doas /usr/obj/bin/ps/ps axe -N /var/crash/bsd.0 -M /var/crash/bsd.0.core
> PID TT STAT TIME COMMAND
> 1 ?? S 0:00.00 /sbin/init
> 68923 ?? IpU 0:00.00 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 76890 ?? RpU 0:00.01 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 46069 ?? Sp 0:00.00 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 21951 ?? IU 0:00.01 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 93421 ?? RpU 0:00.01 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 90234 ?? Sp 0:00.01 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 89330 ?? Sp 0:00.00 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 20157 ?? S 0:00.01 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 75440 ?? S 0:00.03 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 21027 ?? Ip 0:00.00 /usr/sbin/cron
> 35439 ?? I<pc 0:00.00 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 22223 ?? IpU 0:00.00 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 63060 ?? Ipc 0:00.01 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 97728 ?? Ipc 0:00.01 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 2094 ?? Ipc 0:00.01 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 26623 ?? Ip 0:00.01 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 82051 ?? Ipc 0:00.01 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 4344 ?? Ipc 0:00.01 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 98746 ?? Ip 0:00.01 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 39326 ?? I 0:00.00 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 83362 ?? Ip 0:00.01 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 72271 ?? I<pc 0:00.01 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 15292 ?? S<pU 0:00.00 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 95913 ?? Ipc 0:00.00 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 98638 ?? IU 0:00.00 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 54693 ?? Ipc 0:00.01 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 71714 ?? SpU 0:00.00 LOGNAME=root HOME=/root PWD=/root
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> SHELL=/bin/sh USER
> 63047 p0 R+U 0:00.00 DOAS_USER=asou HOME=/root LOGNAME=root
> MAIL=/var/mail/asou
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/loca
> 17918 p0 Dp 0:00.01 USER=asou LOGNAME=asou HOME=/home/asou
> PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
> MAIL=/var/mai
> 17242 C0 I+pU 0:00.00 /usr/libexec/getty std.9600 ttyC0
> 46098 C1 I+pU 0:00.00 /usr/libexec/getty std.9600 ttyC1
> 70097 C2 I+pU 0:00.00 /usr/libexec/getty std.9600 ttyC2
> 30089 C3 I+pU 0:00.00 /usr/libexec/getty std.9600 ttyC3
> 61763 C5 I+pU 0:00.00 /usr/libexec/getty std.9600 ttyC5
> --
> ASOU Masato
>
> Index: kvm_proc.c
> ===================================================================
> RCS file: /cvs/src/lib/libkvm/kvm_proc.c,v
> retrieving revision 1.63
> diff -u -p -r1.63 kvm_proc.c
> --- kvm_proc.c 22 Feb 2022 17:35:01 -0000 1.63
> +++ kvm_proc.c 8 Mar 2024 01:50:32 -0000
> @@ -187,7 +187,7 @@ _kvm_ureadm(kvm_t *kd, const struct kinf
> */
> if (KREAD(kd, (u_long)p->p_vmspace, &vm))
> return (NULL);
> - addr = (u_long)&vm.vm_map.addr.rbh_root.rbt_root;
> + addr = (u_long)vm.vm_map.addr.rbh_root.rbt_root;
> while (1) {
> if (addr == 0)
> return (NULL);
> @@ -228,7 +228,7 @@ _kvm_ureadm(kvm_t *kd, const struct kinf
> return (NULL);
>
> if (_kvm_pread(kd, kd->pmfd, (void *)kd->swapspc,
> - (size_t)kd->nbpg, (off_t)pg.phys_addr) != kd->nbpg)
> + (size_t)kd->nbpg, _kvm_pa2off(kd, pg.phys_addr)) != kd->nbpg)
> return (NULL);
> } else {
> if (kd->swfd == -1 ||
> @@ -432,21 +432,20 @@ static char **
> kvm_doargv(kvm_t *kd, const struct kinfo_proc *p, int nchr, int isenv,
> void (*info)(struct ps_strings *, u_long *, int *))
> {
> - static struct ps_strings *ps;
> + struct proc pp;
> + struct process pr;
> + struct ps_strings *ps;
> struct ps_strings arginfo;
> u_long addr;
> char **ap;
> int cnt;
>
> - if (ps == NULL) {
> - struct _ps_strings _ps;
> - const int mib[2] = { CTL_VM, VM_PSSTRINGS };
> - size_t len;
> -
> - len = sizeof(_ps);
> - sysctl(mib, 2, &_ps, &len, NULL, 0);
> - ps = (struct ps_strings *)_ps.val;
> - }
> + /* get ps_strings address */
> + if (KREAD(kd, (u_long)p->p_paddr, &pp))
> + return (0);
> + if (KREAD(kd, (u_long)pp.p_p, &pr))
> + return (0);
> + ps = (struct ps_strings *)pr.ps_strings;
>
> /*
> * Pointers are stored at the top of the user stack.
Display the details of COMMAND using the ps command from the kernel crash dump.
Display the details of COMMAND using the ps command from the kernel crash dump.
Display the details of COMMAND using the ps command from the kernel crash dump.