Author: kib
Date: Sun Jul  4 12:09:30 2010
New Revision: 209690
URL: http://svn.freebsd.org/changeset/base/209690

Log:
  For "thread signal" command, print some information from siginfo when
  available.
  
  Suggested by: davidxu
  MFC after:    2 weeks

Modified:
  head/gnu/usr.bin/gdb/libgdb/fbsd-threads.c

Modified: head/gnu/usr.bin/gdb/libgdb/fbsd-threads.c
==============================================================================
--- head/gnu/usr.bin/gdb/libgdb/fbsd-threads.c  Sun Jul  4 12:08:04 2010        
(r209689)
+++ head/gnu/usr.bin/gdb/libgdb/fbsd-threads.c  Sun Jul  4 12:09:30 2010        
(r209690)
@@ -1299,6 +1299,7 @@ fbsd_thread_signal_cmd (char *exp, int f
   td_thrhandle_t th;
   td_thrinfo_t ti;
   td_err_e err;
+  const char *code;
 
   if (!fbsd_thread_active || !IS_THREAD(inferior_ptid))
     return;
@@ -1315,6 +1316,42 @@ fbsd_thread_signal_cmd (char *exp, int f
   fbsd_print_sigset(&ti.ti_sigmask);
   printf_filtered("signal pending:\n");
   fbsd_print_sigset(&ti.ti_pending);
+  if (ti.ti_siginfo.si_signo != 0) {
+   printf_filtered("si_signo %d si_errno %d", ti.ti_siginfo.si_signo,
+     ti.ti_siginfo.si_errno);
+   if (ti.ti_siginfo.si_errno != 0)
+    printf_filtered(" (%s)", strerror(ti.ti_siginfo.si_errno));
+   printf_filtered("\n");
+   switch (ti.ti_siginfo.si_code) {
+   case SI_NOINFO:
+       code = "NOINFO";
+       break;
+    case SI_USER:
+       code = "USER";
+       break;
+    case SI_QUEUE:
+       code = "QUEUE";
+       break;
+    case SI_TIMER:
+       code = "TIMER";
+       break;
+    case SI_ASYNCIO:
+       code = "ASYNCIO";
+       break;
+    case SI_MESGQ:
+       code = "MESGQ";
+       break;
+    case SI_KERNEL:
+       code = "KERNEL";
+       break;
+    default:
+       code = "UNKNOWN";
+       break;
+    }
+    printf_filtered("si_code %s si_pid %d si_uid %d si_status %x si_addr %p\n",
+      code, ti.ti_siginfo.si_pid, ti.ti_siginfo.si_uid, 
ti.ti_siginfo.si_status,
+      ti.ti_siginfo.si_addr);
+  }
 }
 
 static int
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to