Changeset 14185


Ignore:
Timestamp:
Aug 13, 2010, 11:02:49 AM (9 years ago)
Author:
gb
Message:

in describe_memfault(), there's not much to say if we don't have
a siginfo_t argument.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lisp-kernel/lisp-debug.c

    r14140 r14185  
    309309   */
    310310#else
    311   fprintf(dbgout, "received signal %d; faulting address: %p\n",
    312           info->si_signo, info->si_addr);
    313   if (info->si_code > 0) {
    314     if (info->si_signo == SIGSEGV) {
    315       switch (info->si_code) {
    316       case SEGV_MAPERR:
    317         fprintf(dbgout, "address not mapped to object\n");
    318         break;
    319       case SEGV_ACCERR:
    320         fprintf(dbgout, "invalid permissions for mapped object\n");
    321         break;
    322       default:
    323         fprintf(dbgout, "unexpected si_code value: %d\n", info->si_code);
    324         break;
    325       }
    326     } else if (info->si_signo == SIGBUS) {
    327       switch (info->si_code) {
    328       case BUS_ADRALN:
    329         fprintf(dbgout, "invalid address alignment\n");
    330         break;
    331       case BUS_ADRERR:
    332         fprintf(dbgout, "non-existent physical address");
    333         break;
    334       case BUS_OBJERR:
    335         fprintf(dbgout, "object-specific hardware error");
    336         break;
    337       default:
    338         fprintf(dbgout, "unexpected si_code value: %d\n", info->si_code);
     311  if (info) {
     312    fprintf(dbgout, "received signal %d; faulting address: %p\n",
     313            info->si_signo, info->si_addr);
     314    if (info->si_code > 0) {
     315      if (info->si_signo == SIGSEGV) {
     316        switch (info->si_code) {
     317        case SEGV_MAPERR:
     318          fprintf(dbgout, "address not mapped to object\n");
     319          break;
     320        case SEGV_ACCERR:
     321          fprintf(dbgout, "invalid permissions for mapped object\n");
     322          break;
     323        default:
     324          fprintf(dbgout, "unexpected si_code value: %d\n", info->si_code);
     325          break;
     326        }
     327      } else if (info->si_signo == SIGBUS) {
     328        switch (info->si_code) {
     329        case BUS_ADRALN:
     330          fprintf(dbgout, "invalid address alignment\n");
     331          break;
     332        case BUS_ADRERR:
     333          fprintf(dbgout, "non-existent physical address");
     334          break;
     335        case BUS_OBJERR:
     336          fprintf(dbgout, "object-specific hardware error");
     337          break;
     338        default:
     339          fprintf(dbgout, "unexpected si_code value: %d\n", info->si_code);
     340        }
    339341      }
    340342    }
Note: See TracChangeset for help on using the changeset viewer.