aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorAndrew Burgess <aburgess@redhat.com>2024-06-22 11:39:38 +0100
committerAndrew Burgess <aburgess@redhat.com>2024-09-07 20:28:59 +0100
commitd552429edae9a9cb6d5c6506149fff1aa407daeb (patch)
tree9c61213c1882c4edba73bfd095ba6849c59e6b76 /configure.ac
parent1be3b2e82f7a2a95d194b2c06d7c961fdbb42a66 (diff)
downloadgdb-d552429edae9a9cb6d5c6506149fff1aa407daeb.zip
gdb-d552429edae9a9cb6d5c6506149fff1aa407daeb.tar.gz
gdb-d552429edae9a9cb6d5c6506149fff1aa407daeb.tar.bz2
gdb: add remove-symbol-file command completion
The 'remove-symbol-file' command doesn't currently offer command completion. This commit addresses this. The 'remove-symbol-file' uses gdb_argv to split its command arguments, this means that the filename the command expects can be quoted. However, the 'remove-symbol-file' command is a little weird in that it also has a '-a' option, if this option is passed then the command expects not a filename, but an address. Currently the remove_symbol_file_command function splits the command args using gdb_argv, checks for a '-a' flag by looking at the first argument value, and then expects the filename or address to occupy a single entry in the gdb_argv array. The first thing I do is handle the '-a' flag using GDB's option system. I model this option as a flag_option_def (a boolean option). I've dropped the use of gdb_argv and instead use the new(ish) function extract_single_filename_arg, which was added a couple of commits back, to parse the filename argument (when '-a' is not given). If '-a' is given the the remove-symbol-file command expects an address rather than a filename. As we previously split the arguments using gdb_argv this meant the address needed to appear as a single argument. So a user could write: (gdb) remove-symbol-file 0x1234 Or they could write: (gdb) remove-symbol-file some_function Both of these would work fine. But a user could not write: (gdb) remove-symbol-file some_function + 0x1000 As only the 'some_function' part would be processed. Now the user could do this: (gdb) remove-symbol-file "some_function + 0x1000" By enclosing the address expression in quotes this would be handled as a single argument. However, this is a little weird, that's not how commands like 'print' or 'x' work. Also this functionality was neither documented, or tested. And so, in this commit, by removing the use of gdb_argv I bring the 'remove-symbol-file' command inline with GDB's other commands that take an expression, the quotes are no longer needed. Usually in a completer we call 'complete_options', but don't actually capture the option values. But for remove-symbol-file I do. This allows me to spot when the '-a' option has been given, I can then complete the rest of the command line as either a filename or an expression. Reviewed-By: Eli Zaretskii <eliz@gnu.org>
Diffstat (limited to 'configure.ac')
0 files changed, 0 insertions, 0 deletions