Changeset View
Changeset View
Standalone View
Standalone View
devel/gdb/files/commit-386a867618
- This file was added.
Property | Old Value | New Value |
---|---|---|
fbsd:nokeywords | null | yes \ No newline at end of property |
svn:eol-style | null | native \ No newline at end of property |
svn:mime-type | null | text/plain \ No newline at end of property |
commit 386a86761838df16c1459275d465ed21a1c35d9f | |||||
Author: John Baldwin <jhb@FreeBSD.org> | |||||
Date: Sat Mar 3 21:25:33 2018 -0800 | |||||
Add a new debug knob for the FreeBSD native target. | |||||
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". | |||||
diff --git gdb/NEWS gdb/NEWS | |||||
index 1767cef920..867e268a2a 100644 | |||||
--- gdb/NEWS | |||||
+++ 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 | |||||
diff --git gdb/doc/gdb.texinfo gdb/doc/gdb.texinfo | |||||
index ee7adc8df2..74e0fdb4a4 100644 | |||||
--- gdb/doc/gdb.texinfo | |||||
+++ gdb/doc/gdb.texinfo | |||||
@@ -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 | |||||
diff --git gdb/fbsd-nat.c gdb/fbsd-nat.c | |||||
index 3a216abf18..2516ac5552 100644 | |||||
--- gdb/fbsd-nat.c | |||||
+++ gdb/fbsd-nat.c | |||||
@@ -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 | |||||
} |