Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH] gdb: make "stop-on-solib-events" a boolean setting
@ 2026-09-28 19:54 Simon Marchi
  0 siblings, 0 replies; only message in thread
From: Simon Marchi @ 2026-09-28 19:54 UTC (permalink / raw)
  To: gdb-patches; +Cc: Simon Marchi

While reviewing a patch, I noticed that the "stop-on-solib-events"
setting was an integer, even though it is spiritually a boolean.  It has
been an integer since it was introduced in commit 87273c713f0e
(1996-01-23).  Make it a boolean setting.

User-visible improvements:

 - The setting accepts the usual boolean values: on/off, yes/no,
   enable/disable, as well as 1/0.

 - "set stop-on-solib-events" with no argument now turns the setting
   on, like other boolean settings, instead of erroring out with
   "Argument required (integer to set it to)".

 - Tab completion offers "on" and "off".

 - "show stop-on-solib-events" prints "on" or "off" instead of a
   number.

Possible breaking changes:

 - Integer values other than 0 and 1, as well as expressions (for
   instance "set stop-on-solib-events $var"), are now rejected with an
   error.

 - The CLI and MI output changes from:

     (gdb) show stop-on-solib-events
     Stopping for shared library events is 0.
     (gdb) interpreter-exec mi "-gdb-show stop-on-solib-events"
     ^done,value="0"
     (gdb) print $_gdb_setting_str("stop-on-solib-events")
     $1 = "0"

   to:

     (gdb) show stop-on-solib-events
     Stopping for shared library events is off.
     (gdb) interpreter-exec mi "-gdb-show stop-on-solib-events"
     ^done,value="off"
     (gdb) print $_gdb_setting_str("stop-on-solib-events")
     $1 = "off"

 - The Python gdb.parameter("stop-on-solib-events") function now returns
   True or False instead of an integer.  The Guile equivalent now
   returns #t or #f.

I think that all these observable changes are relatively easy to work
around.

Add a NEWS entry for the change and update the documentation.

Change-Id: Ia792b172cd6da810de208446447dc78a2e47b09d
---
 gdb/NEWS            |  6 ++++++
 gdb/breakpoint.c    |  4 ++--
 gdb/doc/gdb.texinfo |  2 +-
 gdb/infrun.c        | 16 ++++++++--------
 gdb/infrun.h        |  4 ++--
 5 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/gdb/NEWS b/gdb/NEWS
index 77ad2d3fc22c..af85dac6665d 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -51,6 +51,12 @@ show print shadowed
 
 * Changed commands
 
+set stop-on-solib-events on|off
+show stop-on-solib-events
+  This setting is now a boolean.  Previously, it was an integer, where
+  any non-zero value meant "on".  The values 0 and 1 are still
+  accepted.
+
 info locals
   The new "-shadowed on|off" option overrides the "set print shadowed"
   setting for a single invocation of the command.
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 988737b6f96f..69b9b47276b0 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -12236,8 +12236,8 @@ internal_breakpoint::check_status (bpstat *bs)
 	 events.  This allows the user to get control and place
 	 breakpoints in initializer routines for dynamically loaded
 	 objects (among other things).  */
-      bs->stop = stop_on_solib_events != 0;
-      bs->print = stop_on_solib_events != 0;
+      bs->stop = stop_on_solib_events;
+      bs->print = stop_on_solib_events;
     }
   else
     bs->stop = false;
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index a24f67cb8de1..5cfbad231402 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -22510,7 +22510,7 @@ The surrounding square brackets are optional.
 @end table
 
 @table @code
-@item set stop-on-solib-events
+@item set stop-on-solib-events [on|off]
 @kindex set stop-on-solib-events
 This command controls whether @value{GDBN} should give you control
 when the dynamic linker notifies it about some shared library event.
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 3fbfeff9269d..59c25259fd52 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -413,9 +413,9 @@ get_detach_signal (process_stratum_target *proc_target, ptid_t ptid)
 
 static struct cmd_list_element *stop_command;
 
-/* Nonzero if we want to give control to the user when we're notified
+/* True if we want to give control to the user when we're notified
    of shared library events by the dynamic linker.  */
-int stop_on_solib_events;
+bool stop_on_solib_events;
 
 /* Enable or disable optional shared library event breakpoints
    as appropriate when the above flag is changed.  */
@@ -10846,16 +10846,16 @@ leave it stopped or free to run as needed."),
   /* Update cached state.  */
   signal_cache_update (-1);
 
-  add_setshow_zinteger_cmd ("stop-on-solib-events", class_support,
-			    &stop_on_solib_events, _("\
+  add_setshow_boolean_cmd ("stop-on-solib-events", class_support,
+			   &stop_on_solib_events, _("\
 Set stopping for shared library events."), _("\
 Show stopping for shared library events."), _("\
-If nonzero, gdb will give control to the user when the dynamic linker\n\
+If on, gdb will give control to the user when the dynamic linker\n\
 notifies gdb of shared library events.  The most common event of interest\n\
 to the user would be loading/unloading of a new library."),
-			    set_stop_on_solib_events,
-			    show_stop_on_solib_events,
-			    &setlist, &showlist);
+			   set_stop_on_solib_events,
+			   show_stop_on_solib_events,
+			   &setlist, &showlist);
 
   add_setshow_enum_cmd ("follow-fork-mode", class_run,
 			follow_fork_mode_kind_names,
diff --git a/gdb/infrun.h b/gdb/infrun.h
index cbc603b74edd..7b2b882dc9ad 100644
--- a/gdb/infrun.h
+++ b/gdb/infrun.h
@@ -75,9 +75,9 @@ infrun_debug_show_threads (const char *title, ThreadRange threads)
 }
 
 
-/* Nonzero if we want to give control to the user when we're notified
+/* True if we want to give control to the user when we're notified
    of shared library events by the dynamic linker.  */
-extern int stop_on_solib_events;
+extern bool stop_on_solib_events;
 
 /* True if execution commands resume all threads of all processes by
    default; otherwise, resume only threads of the current inferior

base-commit: 421bec796fa3a06179856da870a13cf71ddf5df2
-- 
2.55.0


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-09-28 19:55 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-28 19:54 [PATCH] gdb: make "stop-on-solib-events" a boolean setting Simon Marchi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox