[BACK]Return to kdump.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / kdump

Diff for /src/usr.bin/kdump/kdump.c between version 1.152 and 1.153

version 1.152, 2022/12/20 21:44:19 version 1.153, 2022/12/29 01:36:36
Line 1320 
Line 1320 
         showbuf(dp, datalen);          showbuf(dp, datalen);
 }  }
   
 static void  void
 ktrpsig(struct ktr_psig *psig)  siginfo(const siginfo_t *si, int show_signo)
 {  {
         signame(psig->signo);          if (show_signo) {
         printf(" ");                  printf("signo=");
         if (psig->action == SIG_DFL)                  signame(si->si_signo);
                 (void)printf("SIG_DFL");  
         else {  
                 (void)printf("caught handler=0x%lx mask=",  
                     (u_long)psig->action);  
                 sigset(psig->mask);  
         }          }
         if (psig->code) {          if (si->si_code) {
                 printf(" code ");                  printf(" code=");
                 if (fancy) {                  if (!fancy)
                         switch (psig->signo) {                          printf("<%d>", si->si_code);
                   else {
                           switch (si->si_signo) {
                         case SIGILL:                          case SIGILL:
                                 sigill_name(psig->code);                                  sigill_name(si->si_code);
                                 break;                                  break;
                         case SIGTRAP:                          case SIGTRAP:
                                 sigtrap_name(psig->code);                                  sigtrap_name(si->si_code);
                                 break;                                  break;
                         case SIGEMT:                          case SIGEMT:
                                 sigemt_name(psig->code);                                  sigemt_name(si->si_code);
                                 break;                                  break;
                         case SIGFPE:                          case SIGFPE:
                                 sigfpe_name(psig->code);                                  sigfpe_name(si->si_code);
                                 break;                                  break;
                         case SIGBUS:                          case SIGBUS:
                                 sigbus_name(psig->code);                                  sigbus_name(si->si_code);
                                 break;                                  break;
                         case SIGSEGV:                          case SIGSEGV:
                                 sigsegv_name(psig->code);                                  sigsegv_name(si->si_code);
                                 break;                                  break;
                         case SIGCHLD:                          case SIGCHLD:
                                 sigchld_name(psig->code);                                  sigchld_name(si->si_code);
                                 break;                                  break;
                           default:
                                   printf("<%d>", si->si_code);
                                   break;
                         }                          }
                 }                  }
                 printf("<%d>", psig->code);  
         }          }
   
         switch (psig->signo) {          switch (si->si_signo) {
         case SIGSEGV:          case SIGSEGV:
         case SIGILL:          case SIGILL:
         case SIGBUS:          case SIGBUS:
         case SIGFPE:          case SIGFPE:
                 printf(" addr=%p trapno=%d", psig->si.si_addr,                  printf(" addr=%p trapno=%d", si->si_addr, si->si_trapno);
                     psig->si.si_trapno);  
                 break;                  break;
           case SIGCHLD:
                   if (si->si_code == CLD_EXITED) {
                           printf(" status=%d", si->si_status);
                           if (si->si_status < 0 || si->si_status > 9)
                                   (void)printf("/%#x", si->si_status);
                   } else {
                           printf(" status=");
                           signame(si->si_status);
                   }
                   printf(" pid=%d uid=", si->si_pid);
                   uidname(si->si_uid);
                   break;
         default:          default:
                 break;                  break;
         }          }
         printf("\n");  }
   
   static void
   ktrpsig(struct ktr_psig *psig)
   {
           signame(psig->signo);
           printf(" ");
           if (psig->action == SIG_DFL)
                   printf("SIG_DFL");
           else {
                   printf("caught handler=0x%lx mask=", (u_long)psig->action);
                   sigset(psig->mask);
           }
           siginfo(&psig->si, 0);
           putchar('\n');
 }  }
   
 static void  static void

Legend:
Removed from v.1.152  
changed lines
  Added in v.1.153