gdb: add load-libthread-db-quietly option
Checks
Context |
Check |
Description |
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 |
success
|
Build passed
|
linaro-tcwg-bot/tcwg_gdb_build--master-arm |
success
|
Build passed
|
linaro-tcwg-bot/tcwg_gdb_check--master-arm |
success
|
Test passed
|
linaro-tcwg-bot/tcwg_gdb_check--master-aarch64 |
success
|
Test passed
|
Commit Message
In line with the Unix tradition in which no messages are displayed when no
error happens, I suggest the attached patch, with which users could "set
load-libthread-db-quietly off" in their .gdbinit file.
Thanks.
Comments
> Date: Sat, 01 Mar 2025 10:39:06 +0000
> From: Gregory Heytings <gregory@heytings.org>
>
> In line with the Unix tradition in which no messages are displayed when no
> error happens, I suggest the attached patch, with which users could "set
> load-libthread-db-quietly off" in their .gdbinit file.
You mean, "on", right? Because "off" is the default.
> Setting that option disables the "Thread debugging using libthread_db
> enabled" and "Using host libthread_db library..." messages.
> ---
> gdb/doc/gdb.texinfo | 7 +++++++
> gdb/linux-thread-db.c | 29 ++++++++++++++++++++++++++---
> 2 files changed, 33 insertions(+), 3 deletions(-)
There should be a NEWS entry about this new knob.
> +@kindex set load-libthread-db-quietly
> +@kindex show load-libthread-db-quietly
> +@item set load-libthread-db-quietly
> +@itemx show load-libthread-db-quietly
> +Turns on or off display of messages when @code{libthread_db} is loaded.
> +The default is @code{off}.
This description seems to be backwards, no? The option, when ON,
causes the messages NOT to be displayed, right? So I suggest
Turns on or off quiet loading of @code{libthread_db}. When
@code{on}, @value{GDBN} loads @code{libthread_db} quietly, without
any messages. The default is @code{off}.
Thanks.
Reviewed-By: Eli Zaretskii <eliz@gnu.org>
Thanks for the review! Updated patch attached.
>> In line with the Unix tradition in which no messages are displayed when
>> no error happens, I suggest the attached patch, with which users could
>> "set load-libthread-db-quietly off" in their .gdbinit file.
>
> You mean, "on", right? Because "off" is the default.
>
Correct.
>
> There should be a NEWS entry about this new knob.
>
Now done.
>
> This description seems to be backwards, no? The option, when ON, causes
> the messages NOT to be displayed, right? So I suggest
>
> Turns on or off quiet loading of @code{libthread_db}. When @code{on},
> @value{GDBN} loads @code{libthread_db} quietly, without any messages.
> The default is @code{off}.
>
Also correct.
> Date: Sat, 01 Mar 2025 12:00:54 +0000
> From: Gregory Heytings <gregory@heytings.org>
> cc: Eli Zaretskii <eliz@gnu.org>
>
> Thanks for the review! Updated patch attached.
>
> >> In line with the Unix tradition in which no messages are displayed when
> >> no error happens, I suggest the attached patch, with which users could
> >> "set load-libthread-db-quietly off" in their .gdbinit file.
> >
> > You mean, "on", right? Because "off" is the default.
> >
>
> Correct.
>
> >
> > There should be a NEWS entry about this new knob.
> >
>
> Now done.
>
> >
> > This description seems to be backwards, no? The option, when ON, causes
> > the messages NOT to be displayed, right? So I suggest
> >
> > Turns on or off quiet loading of @code{libthread_db}. When @code{on},
> > @value{GDBN} loads @code{libthread_db} quietly, without any messages.
> > The default is @code{off}.
> >
>
> Also correct.
Thanks, the documentation parts of this are approved. Now let's see
if the Powers that Be agree to the code changes...
Reviewed-By: Eli Zaretskii <eliz@gnu.org>
On 3/1/25 9:10 AM, Eli Zaretskii wrote:
>> Date: Sat, 01 Mar 2025 12:00:54 +0000
>> From: Gregory Heytings <gregory@heytings.org>
>> cc: Eli Zaretskii <eliz@gnu.org>
>>
>> Thanks for the review! Updated patch attached.
>>
>>>> In line with the Unix tradition in which no messages are displayed when
>>>> no error happens, I suggest the attached patch, with which users could
>>>> "set load-libthread-db-quietly off" in their .gdbinit file.
>>>
>>> You mean, "on", right? Because "off" is the default.
>>>
>>
>> Correct.
>>
>>>
>>> There should be a NEWS entry about this new knob.
>>>
>>
>> Now done.
>>
>>>
>>> This description seems to be backwards, no? The option, when ON, causes
>>> the messages NOT to be displayed, right? So I suggest
>>>
>>> Turns on or off quiet loading of @code{libthread_db}. When @code{on},
>>> @value{GDBN} loads @code{libthread_db} quietly, without any messages.
>>> The default is @code{off}.
>>>
>>
>> Also correct.
>
> Thanks, the documentation parts of this are approved. Now let's see
> if the Powers that Be agree to the code changes...
>
> Reviewed-By: Eli Zaretskii <eliz@gnu.org>
People ask us to make it possible to turn this or that message on and
off all the time. The proposed command, "set
load-libthread-db-quietly", is very specific to that use case. Could we
add perhaps a prefix command (or find an existing appropriate one) that
would allow us to easily add more such knobs? I'm thinking of something
like (maybe not a good name, but just for the example):
(gdb) set message load-libthread-db on/off
Simon
>
> People ask us to make it possible to turn this or that message on and
> off all the time. The proposed command, "set
> load-libthread-db-quietly", is very specific to that use case.
>
Indeed.
>
> Could we add perhaps a prefix command (or find an existing appropriate
> one) that would allow us to easily add more such knobs? I'm thinking of
> something like (maybe not a good name, but just for the example):
>
> (gdb) set message load-libthread-db on/off
>
Would
set print load-libthread-db on/off
be better?
On 3/3/25 10:04 AM, Gregory Heytings wrote:
>
>>
>> People ask us to make it possible to turn this or that message on and off all the time. The proposed command, "set load-libthread-db-quietly", is very specific to that use case.
>>
>
> Indeed.
>
>>
>> Could we add perhaps a prefix command (or find an existing appropriate one) that would allow us to easily add more such knobs? I'm thinking of something like (maybe not a good name, but just for the example):
>>
>> (gdb) set message load-libthread-db on/off
>>
>
> Would
>
> set print load-libthread-db on/off
>
> be better?
>
I initially thought it wouldn't be a good idea because I thought that
"set/show print" only contained options regarding the "print" command,
which is not the same thing as printing or not printing messages. But
it is used for tweaking messages already. I see:
set print symbol-loading -- Set printing of symbol loading messages.
set print thread-events -- Set printing of thread events (such as thread start and exit).
set print inferior-events -- Set printing of inferior events (such as inferior start and exit).
So, unless there is a better place for this type of commands that I
don't know about, I think "set print" would be fine.
Simon
> Date: Mon, 3 Mar 2025 09:59:25 -0500
> Cc: gdb-patches@sourceware.org
> From: Simon Marchi <simark@simark.ca>
>
> People ask us to make it possible to turn this or that message on and
> off all the time. The proposed command, "set
> load-libthread-db-quietly", is very specific to that use case. Could we
> add perhaps a prefix command (or find an existing appropriate one) that
> would allow us to easily add more such knobs? I'm thinking of something
> like (maybe not a good name, but just for the example):
>
> (gdb) set message load-libthread-db on/off
Sure, why not. But we'd need some infrastructure for each command to
be able to determine whether it was asked to be quiet, won't we?
>
> So, unless there is a better place for this type of commands that I
> don't know about, I think "set print" would be fine.
>
Okay, thanks. Updated patch attached.
On 3/3/25 10:40 AM, Eli Zaretskii wrote:
>> Date: Mon, 3 Mar 2025 09:59:25 -0500
>> Cc: gdb-patches@sourceware.org
>> From: Simon Marchi <simark@simark.ca>
>>
>> People ask us to make it possible to turn this or that message on and
>> off all the time. The proposed command, "set
>> load-libthread-db-quietly", is very specific to that use case. Could we
>> add perhaps a prefix command (or find an existing appropriate one) that
>> would allow us to easily add more such knobs? I'm thinking of something
>> like (maybe not a good name, but just for the example):
>>
>> (gdb) set message load-libthread-db on/off
>
> Sure, why not. But we'd need some infrastructure for each command to
> be able to determine whether it was asked to be quiet, won't we?
I'm not saying we need special infrastructure in the code to handle
this, but just to regroup similar settings under the same prefix, to
keep them together and consistent.
Simon
Gregory> Setting that option enables or disables the "Thread debugging using
Gregory> libthread_db enabled" and "Using host libthread_db library..." messages.
Hi. Thanks for the patch.
Do you have a copyright assignment in place? I think we'd need that
before checking this in.
The patch looks good to me, but normally it should come with a test
case. Maybe gdb.threads/check-libthread-db.exp could be easily modified
to add one?
Tom
> Gregory> Setting that option enables or disables the "Thread debugging using
> Gregory> libthread_db enabled" and "Using host libthread_db library..." messages.
>
> Hi. Thanks for the patch.
>
Thanks for your reply!
>
> Do you have a copyright assignment in place? I think we'd need that
> before checking this in.
>
I don't have a copyright assignment for GDB, no. Is that really necessary
for such a trivial patch? I thought copyright assignments were not needed
for small enough patches?
> The patch looks good to me, but normally it should come with a test
> case. Maybe gdb.threads/check-libthread-db.exp could be easily modified
> to add one?
Okay, I'll look into that.
From 472624cf3044b1351f164c308eb9cea5b7351333 Mon Sep 17 00:00:00 2001
From: Gregory Heytings <gregory@heytings.org>
Date: Sat, 1 Mar 2025 10:27:18 +0000
Subject: [PATCH] gdb: add load-libthread-db-quietly option
Setting that option disables the "Thread debugging using libthread_db
enabled" and "Using host libthread_db library..." messages.
---
gdb/doc/gdb.texinfo | 7 +++++++
gdb/linux-thread-db.c | 29 ++++++++++++++++++++++++++---
2 files changed, 33 insertions(+), 3 deletions(-)
@@ -4073,6 +4073,13 @@ only on some platforms.
@item show libthread-db-search-path
Display current libthread_db search path.
+@kindex set load-libthread-db-quietly
+@kindex show load-libthread-db-quietly
+@item set load-libthread-db-quietly
+@itemx show load-libthread-db-quietly
+Turns on or off display of messages when @code{libthread_db} is loaded.
+The default is @code{off}.
+
@kindex set debug libthread-db
@kindex show debug libthread-db
@cindex debugging @code{libthread_db}
@@ -120,6 +120,9 @@ static bool auto_load_thread_db = true;
by the "maintenance set check-libthread-db" command. */
static bool check_thread_db_on_load = false;
+/* Set to true if loading libthread_db happens quietly. */
+static bool load_libthread_db_quiet = false;
+
/* "show" command for the auto_load_thread_db configuration variable. */
static void
@@ -150,6 +153,15 @@ show_libthread_db_debug (struct ui_file *file, int from_tty,
gdb_printf (file, _("libthread-db debugging is %s.\n"), value);
}
+/* "show" command for the load_libthread_db_quiet configuration variable. */
+
+static void
+show_load_libthread_db_quiet (struct ui_file *file, int from_tty,
+ struct cmd_list_element *c, const char* value)
+{
+ gdb_printf (file, _("Loading libthread_db quietly is %s.\n"), value);
+}
+
/* If we're running on GNU/Linux, we must explicitly attach to any new
threads. */
@@ -936,7 +948,8 @@ try_thread_db_load_1 (struct thread_db_info *info)
return false;
}
- gdb_printf (_("[Thread debugging using libthread_db enabled]\n"));
+ if (!load_libthread_db_quiet)
+ gdb_printf (_("[Thread debugging using libthread_db enabled]\n"));
if (!libthread_db_search_path.empty () || libthread_db_debug)
{
@@ -946,8 +959,9 @@ try_thread_db_load_1 (struct thread_db_info *info)
if (library == NULL)
library = LIBTHREAD_DB_SO;
- gdb_printf (_("Using host libthread_db library \"%ps\".\n"),
- styled_string (file_name_style.style (), library));
+ if (!load_libthread_db_quiet)
+ gdb_printf (_("Using host libthread_db library \"%ps\".\n"),
+ styled_string (file_name_style.style (), library));
}
/* The thread library was detected. Activate the thread_db target
@@ -2050,6 +2064,15 @@ as they are loaded."),
&maintenance_set_cmdlist,
&maintenance_show_cmdlist);
+ add_setshow_boolean_cmd ("load-libthread-db-quietly", class_support,
+ &load_libthread_db_quiet, _("\
+Set whether GDB should load libthread_db quietly."), _("\
+Show whether GDB should start load libthread_db quietly."), _("\
+If enabled, GDB will load libthread_db without printing messages."),
+ NULL,
+ show_load_libthread_db_quiet,
+ &setlist, &showlist);
+
/* Add ourselves to objfile event chain. */
gdb::observers::new_objfile.attach (thread_db_new_objfile, "linux-thread-db");
--
2.39.2