Add a new debug knob for the FreeBSD native target.
authorJohn Baldwin <jhb@FreeBSD.org>
Sun, 4 Mar 2018 05:25:33 +0000 (21:25 -0800)
committerJohn Baldwin <jhb@FreeBSD.org>
Sun, 4 Mar 2018 05:25:33 +0000 (21:25 -0800)
For now this just logs information about the state of the current LWP
for each STOPPED event in fbsd_wait().

gdb/ChangeLog:

* NEWS (Changes since GDB 8.1): Add "set/show debug fbsd-nat".
* fbsd-nat.c (debug_fbsd_nat): New variable.
(show_fbsd_nat_debug): New function.
(fbsd_wait): Log LWP info if "debug_fbsd_nat" is enabled.
(_initialize_fbsd_nat): Add "fbsd-nat" debug boolean command.

gdb/doc/ChangeLog:

* gdb.texinfo (Debugging Output): Document "set/show debug
fbsd-nat".

gdb/ChangeLog
gdb/NEWS
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/fbsd-nat.c

index f5484617676d70cc37d9c1d0083921a44b239d75..9a12a5e08fbfd880746007dde7b935ce7468d708 100644 (file)
@@ -1,3 +1,11 @@
+2018-03-04  John Baldwin  <jhb@FreeBSD.org>
+
+       * NEWS (Changes since GDB 8.1): Add "set/show debug fbsd-nat".
+       * fbsd-nat.c (debug_fbsd_nat): New variable.
+       (show_fbsd_nat_debug): New function.
+       (fbsd_wait): Log LWP info if "debug_fbsd_nat" is enabled.
+       (_initialize_fbsd_nat): Add "fbsd-nat" debug boolean command.
+
 2018-03-04  John Baldwin  <jhb@FreeBSD.org>
 
        * nat/x86-dregs.c (x86_dr_stopped_by_hw_breakpoint): New function.
index 1767cef920ad2304341b218dd384c7e510d08009..867e268a2a8a26a3ec89856dc3010e3215c2c09d 100644 (file)
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -6,6 +6,12 @@
 * 'info proc' now works on running processes on FreeBSD systems and core
   files created on FreeBSD systems.
 
+* New commands
+
+set debug fbsd-nat
+show debug fbsd-nat
+  Control display of debugging info regarding the FreeBSD native target.
+
 *** Changes in GDB 8.1
 
 * GDB now supports dynamically creating arbitrary register groups specified
index 037173ce0ab6e38aa50e781bb6112a7bac011212..dca13c67b482d3ba9c7a00c757b7278ed72c2bc4 100644 (file)
@@ -1,3 +1,8 @@
+2018-03-04  John Baldwin  <jhb@FreeBSD.org>
+
+       * gdb.texinfo (Debugging Output): Document "set/show debug
+       fbsd-nat".
+
 2018-02-19  Andrew Burgess  <andrew.burgess@embecosm.com>
 
        * gdb.texinfo (Machine Code): Additional information about "info
index ee7adc8df223984c1c3fbff76a430f1b637673e5..74e0fdb4a4db252d30b2b8586365c9e962a41ab4 100644 (file)
@@ -24554,6 +24554,11 @@ Displays the current state of displaying debugging info about
 Turns on or off debugging messages from the FreeBSD LWP debug support.
 @item show debug fbsd-lwp
 Show the current state of FreeBSD LWP debugging messages.
+@item set debug fbsd-nat
+@cindex FreeBSD native target debug messages
+Turns on or off debugging messages from the FreeBSD native target.
+@item show debug fbsd-nat
+Show the current state of FreeBSD native target debugging messages.
 @item set debug frame
 @cindex frame debugging info
 Turns on or off display of @value{GDBN} frame debugging info.  The
index 3a216abf186f48247681945368ab9f40931e79cb..2516ac5552940cfa4b16ed74772ef79d234e5631 100644 (file)
@@ -765,6 +765,7 @@ fbsd_xfer_partial (struct target_ops *ops, enum target_object object,
 
 #ifdef PT_LWPINFO
 static int debug_fbsd_lwp;
+static int debug_fbsd_nat;
 
 static void (*super_resume) (struct target_ops *,
                             ptid_t,
@@ -782,6 +783,14 @@ show_fbsd_lwp_debug (struct ui_file *file, int from_tty,
   fprintf_filtered (file, _("Debugging of FreeBSD lwp module is %s.\n"), value);
 }
 
+static void
+show_fbsd_nat_debug (struct ui_file *file, int from_tty,
+                    struct cmd_list_element *c, const char *value)
+{
+  fprintf_filtered (file, _("Debugging of FreeBSD native target is %s.\n"),
+                   value);
+}
+
 /*
   FreeBSD's first thread support was via a "reentrant" version of libc
   (libc_r) that first shipped in 2.2.7.  This library multiplexed all
@@ -1212,6 +1221,18 @@ fbsd_wait (struct target_ops *ops,
 
          wptid = ptid_build (pid, pl.pl_lwpid, 0);
 
+         if (debug_fbsd_nat)
+           {
+             fprintf_unfiltered (gdb_stdlog,
+                                 "FNAT: stop for LWP %u event %d flags %#x\n",
+                                 pl.pl_lwpid, pl.pl_event, pl.pl_flags);
+             if (pl.pl_flags & PL_FLAG_SI)
+               fprintf_unfiltered (gdb_stdlog,
+                                   "FNAT: si_signo %u si_code %u\n",
+                                   pl.pl_siginfo.si_signo,
+                                   pl.pl_siginfo.si_code);
+           }
+
 #ifdef PT_LWP_EVENTS
          if (pl.pl_flags & PL_FLAG_EXITED)
            {
@@ -1569,5 +1590,13 @@ Enables printf debugging output."),
                           NULL,
                           &show_fbsd_lwp_debug,
                           &setdebuglist, &showdebuglist);
+  add_setshow_boolean_cmd ("fbsd-nat", class_maintenance,
+                          &debug_fbsd_nat, _("\
+Set debugging of FreeBSD native target."), _("\
+Show debugging of FreeBSD native target."), _("\
+Enables printf debugging output."),
+                          NULL,
+                          &show_fbsd_nat_debug,
+                          &setdebuglist, &showdebuglist);
 #endif
 }