svn commit: r209690 - head/gnu/usr.bin/gdb/libgdb

Konstantin Belousov kib at FreeBSD.org
Sun Jul 4 12:09:31 UTC 2010


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


More information about the svn-src-head mailing list