[PATCH] GDB/doc: Remove extraneous spaces from completion examples
Maciej W. Rozycki
macro@embecosm.com
Fri Jul 1 15:13:05 GMT 2022
Completion results are usually different when the operation is applied
to a word that is or is not followed by a space. In some cases they are
equivalent, however a space would not be produced if completion was used
earlier on in the word processed.
However in the manual we have completion examples given using a space
that actually prevents the example from working. E.g.:
(gdb) info bre <TAB>
(nothing) and:
(gdb) info bre <TAB><TAB>
Display all 200 possibilities? (y or n)
as it now goes on to propose the entire symbol table, while:
(gdb) info bre<TAB>
(gdb) info breakpoints
does the right thing, but is not what is shown in the manual.
In other cases an extraneous space is used that does not correspond to
the actual completion pattern shown, which gives an impression of
sloppiness.
Remove extraneous spaces then from completion examples as appropriate.
---
Hi,
Noticed while making documentation updates for "NUMBER" completion.
OK to apply?
Additionally we do have an issue with completion here. For example when
debugging `cc1' from GCC 12, which has a huge number of template class
function symbols, e.g.:
hash_table<action_record_hasher, false, xcallocator>::expand()
hash_table<action_record_hasher, false, xcallocator>::find_slot_with_hash(action_record* const&, unsigned int, insert_option)
hash_table<action_record_hasher, false, xcallocator>::~hash_table()
hash_table<addr_hasher, false, xcallocator>::expand()
[1100+ entries follow]
if you try to complete such a symbol correctly, it seems to work as
expected:
(gdb) break hash_tab<Tab>
(gdb) break hash_table<
However if you do it with a space inserted, then you get:
(gdb) break hash_tab <Tab>
(gdb) break hash_tab le<
which is already wrong. And on one but not all of my systems if you try
to complete again at this point:
(gdb) break hash_tab le<<Tab>
(gdb) break hash_tab le<warning: could not convert 'hash_tab le<' from the host encoding (ANSI_X3.4-1968) to UTF-32.
This normally should not happen, please file a bug report.
and then it hangs for a couple of minutes before silently returning to the
prompt (i.e. it's not shown unless e.g. ^U is entered).
The message comes from gdb/ada-lang.c, and it's not clear to me offhand
why it's produced given that `cc1' contains no Ada code:
(gdb) show language
The current source language is "auto; currently c++".
(gdb)
I have filed PR cli/29314 and PR cli/29315 respectively to track these
issues.
Maciej
---
gdb/doc/gdb.texinfo | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
gdb-doc-completion-space-fix.diff
Index: src/gdb/doc/gdb.texinfo
===================================================================
--- src.orig/gdb/doc/gdb.texinfo
+++ src/gdb/doc/gdb.texinfo
@@ -1915,7 +1915,7 @@ enter it). For example, if you type
@c If texinfo enhancements make it unnecessary, it would be nice to
@c replace " @key" by "@key" in the following...
@smallexample
-(@value{GDBP}) info bre @key{TAB}
+(@value{GDBP}) info bre@key{TAB}
@end smallexample
@noindent
@@ -1945,7 +1945,7 @@ function names in your program that begi
example:
@smallexample
-(@value{GDBP}) b make_ @key{TAB}
+(@value{GDBP}) b make_@key{TAB}
@exdent @value{GDBN} sounds bell; press @key{TAB} again, to see:
make_a_section_from_file make_environ
make_abs_section make_function_type
@@ -2039,7 +2039,7 @@ the word-completion facilities in this s
when you press @key{TAB} or @kbd{M-?} to request word completion:
@smallexample
-(@value{GDBP}) p 'func< @kbd{M-?}
+(@value{GDBP}) p 'func<@kbd{M-?}
func<int>() func<float>()
(@value{GDBP}) p 'func<
@end smallexample
@@ -2050,7 +2050,7 @@ usually need to type a quote before the
function:
@smallexample
-(@value{GDBP}) b func< @kbd{M-?}
+(@value{GDBP}) b func<@kbd{M-?}
func<int>() func<float>()
(@value{GDBP}) b func<
@end smallexample
@@ -2063,9 +2063,9 @@ that takes an @code{int} parameter, @cod
that takes a @code{float} parameter, @code{name(float)}.
@smallexample
-(@value{GDBP}) b bubble( @kbd{M-?}
+(@value{GDBP}) b bubble(@kbd{M-?}
bubble(int) bubble(double)
-(@value{GDBP}) b bubble(dou @kbd{M-?}
+(@value{GDBP}) b bubble(dou@kbd{M-?}
bubble(double)
@end smallexample
More information about the Gdb-patches
mailing list