From: Guinevere Larsen <guinevere@redhat.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 3/3] GDB: Introduce "info namespaces" command
Date: Mon, 7 Apr 2025 14:04:58 -0300 [thread overview]
Message-ID: <9c4db6df-fdae-4c3d-89b7-e840dcf30cba@redhat.com> (raw)
In-Reply-To: <86ldsct1ou.fsf@gnu.org>
On 4/7/25 12:45 PM, Eli Zaretskii wrote:
>> From: Guinevere Larsen <guinevere@redhat.com>
>> Cc: Guinevere Larsen <guinevere@redhat.com>
>> Date: Mon, 7 Apr 2025 11:54:43 -0300
>>
>> Continuing to improve GDB's ability to debug linker namespaces, this
>> commit adds the command "info namespaces". The command is similar to
>> "info sharedlibrary" but focused on improved readability when the
>> inferior has multiple linker namespaces active. This command can
>> be used in 2 different ways, with or without an argument.
>>
>> When called without argument, the command will print the number of
>> namespaces, and for each active namespace, it's identifier, how many
>> libraries are loaded in it, and all the libraries (in a similar table to
>> what "info sharedlibrary" shows). As an example, this is what GDB's
>> output could look like:
>>
>> (gdb) info namespaces
>> There are 2 namespaces loaded
>> There are 3 libraries loaded in namespace [[0]]
>> Displaying libraries for namespace [[0]]:
>> From To Syms Read Shared Object Library
>> 0x00007ffff7fc6000 0x00007ffff7fff000 Yes /lib64/ld-linux-x86-64.so.2
>> 0x00007ffff7ebc000 0x00007ffff7fa2000 Yes (*) /lib64/libm.so.6
>> 0x00007ffff7cc9000 0x00007ffff7ebc000 Yes (*) /lib64/libc.so.6
>> (*): Shared library is missing debugging information.
>>
>> There are 4 libraries loaded in namespace [[1]]
>> Displaying libraries for namespace [[1]]:
>> From To Syms Read Shared Object Library
>> 0x00007ffff7fc6000 0x00007ffff7fff000 Yes /lib64/ld-linux-x86-64.so.2
>> 0x00007ffff7fb9000 0x00007ffff7fbe000 Yes gdb.base/dlmopen-ns-ids/dlmopen-lib.so
>> 0x00007ffff7bc4000 0x00007ffff7caa000 Yes (*) /lib64/libm.so.6
>> 0x00007ffff79d1000 0x00007ffff7bc4000 Yes (*) /lib64/libc.so.6
>> (*): Shared library is missing debugging information.
>>
>> When called with an argument, the argument must be a namespace
>> identifier (either with or without the square brackets decorators). In
>> this situation, the command will truncate the output to only show the
>> relevant information for the requested namespace. For example:
>>
>> (gdb) info namespaces 0
>> There are 3 libraries loaded in namespace [[0]]
>> Displaying libraries for namespace [[0]]:
>> From To Syms Read Shared Object Library
>> 0x00007ffff7fc6000 0x00007ffff7fff000 Yes /lib64/ld-linux-x86-64.so.2
>> 0x00007ffff7ebc000 0x00007ffff7fa2000 Yes (*) /lib64/libm.so.6
>> 0x00007ffff7cc9000 0x00007ffff7ebc000 Yes (*) /lib64/libc.so.6
>> (*): Shared library is missing debugging information.
>>
>> The test gdb.base/dlmopen-ns-id.exp has been extended to test this new
>> command.
>> ---
>> gdb/NEWS | 5 ++
>> gdb/doc/gdb.texinfo | 15 ++++
>> gdb/solib-svr4.c | 49 ++++++++++++
>> gdb/solib.c | 91 ++++++++++++++++++++++
>> gdb/solist.h | 4 +
>> gdb/testsuite/gdb.base/dlmopen-ns-ids.exp | 93 +++++++++++++++++++++++
>> 6 files changed, 257 insertions(+)
> Thanks.
>
>> +info namespaces
>> +info namespaces [[N]]
>> + Print information about the given namespace (identified as N), or about
>> + all the namespaces if no argument is given.
> This part is okay.
>
>> +@table @code
>> +@item info namespaces
> No @kindex?
Thanks for the quick review!
I didn't use @kindex because I didn't know what it was used for, and
didn't accidentally put my command into an unrelated list somehow.
I fixed this and everything else pointed out in this review!
--
Cheers,
Guinevere Larsen
She/Her/Hers
>
>> +@item info namespaces @code{[[N]]}
> N is a meta-syntactic variable, so please use @var{n} for it.
>
>> +With no argument, print the number of linker namespaces which are
>> +currently active - that is, namespaces that have libraries loaded
> ^
> Please use either "--" or "---" to produce an em-dash or en-dash.
>
>> +on them. Then, it prints the number of libraries loaded into each
> ^^^^^^^
> "into them", right?
>
>> +If an argument is provided, only prints the library count and table
>> +for the provided namespace.K The surrounding square brackets are
> "If an argument @code{[[@var{n}]]} is provided, only prints the
> library count and the libraries for the specified namespace @var{n}."
>
> Reviewed-By: Eli Zaretskii <eliz@gnu.org>
>
next prev parent reply other threads:[~2025-04-07 17:06 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-07 14:54 [PATCH 0/3] Add some linker namespaces conveniences Guinevere Larsen
2025-04-07 14:54 ` [PATCH 1/3] gdb: add convenience variables around linker namespace debugging Guinevere Larsen
2025-04-07 15:39 ` Eli Zaretskii
2025-04-07 17:10 ` Guinevere Larsen
2025-04-07 14:54 ` [PATCH 2/3] gdb: factor out printing a table of solibs for info sharedlibrary Guinevere Larsen
2025-04-07 14:54 ` [PATCH 3/3] GDB: Introduce "info namespaces" command Guinevere Larsen
2025-04-07 15:45 ` Eli Zaretskii
2025-04-07 17:04 ` Guinevere Larsen [this message]
2025-04-07 18:08 ` [PATCH 0/3] Add some linker namespaces conveniences Kevin Buettner
2025-04-09 20:20 ` Guinevere Larsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9c4db6df-fdae-4c3d-89b7-e840dcf30cba@redhat.com \
--to=guinevere@redhat.com \
--cc=eliz@gnu.org \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox