Add completion for Ada catch commands
This patch adds a completion function to the "catch exception" and "catch handlers" commands. Tested on x86-64 Fedora 29; reviewed off-list by Joel. gdb/ChangeLog 2019-05-10 Tom Tromey <tromey@adacore.com> * ada-lang.c (catch_ada_completer): New function. (_initialize_ada_language): Use it. gdb/testsuite/ChangeLog 2019-05-10 Tom Tromey <tromey@adacore.com> * gdb.ada/info_exc.exp: Add "complete" test.
This commit is contained in:
parent
b8e07335d0
commit
71bed2dba6
4 changed files with 31 additions and 2 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2019-05-10 Tom Tromey <tromey@adacore.com>
|
||||||
|
|
||||||
|
* ada-lang.c (catch_ada_completer): New function.
|
||||||
|
(_initialize_ada_language): Use it.
|
||||||
|
|
||||||
2019-05-10 Tom Tromey <tromey@adacore.com>
|
2019-05-10 Tom Tromey <tromey@adacore.com>
|
||||||
|
|
||||||
* thread.c (print_thread_info): Make "requested_threads" const.
|
* thread.c (print_thread_info): Make "requested_threads" const.
|
||||||
|
|
|
@ -13342,6 +13342,22 @@ catch_ada_handlers_command (const char *arg_entry, int from_tty,
|
||||||
from_tty);
|
from_tty);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Completion function for the Ada "catch" commands. */
|
||||||
|
|
||||||
|
static void
|
||||||
|
catch_ada_completer (struct cmd_list_element *cmd, completion_tracker &tracker,
|
||||||
|
const char *text, const char *word)
|
||||||
|
{
|
||||||
|
std::vector<ada_exc_info> exceptions = ada_exceptions_list (NULL);
|
||||||
|
|
||||||
|
for (const ada_exc_info &info : exceptions)
|
||||||
|
{
|
||||||
|
if (startswith (info.name, word))
|
||||||
|
tracker.add_completion
|
||||||
|
(gdb::unique_xmalloc_ptr<char> (xstrdup (info.name)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Split the arguments specified in a "catch assert" command.
|
/* Split the arguments specified in a "catch assert" command.
|
||||||
|
|
||||||
ARGS contains the command's arguments (or the empty string if
|
ARGS contains the command's arguments (or the empty string if
|
||||||
|
@ -14562,7 +14578,7 @@ termination).\n\
|
||||||
Otherwise, the catchpoint only stops when the name of the exception being\n\
|
Otherwise, the catchpoint only stops when the name of the exception being\n\
|
||||||
raised is the same as ARG."),
|
raised is the same as ARG."),
|
||||||
catch_ada_exception_command,
|
catch_ada_exception_command,
|
||||||
NULL,
|
catch_ada_completer,
|
||||||
CATCH_PERMANENT,
|
CATCH_PERMANENT,
|
||||||
CATCH_TEMPORARY);
|
CATCH_TEMPORARY);
|
||||||
|
|
||||||
|
@ -14570,7 +14586,7 @@ raised is the same as ARG."),
|
||||||
Catch Ada exceptions, when handled.\n\
|
Catch Ada exceptions, when handled.\n\
|
||||||
With an argument, catch only exceptions with the given name."),
|
With an argument, catch only exceptions with the given name."),
|
||||||
catch_ada_handlers_command,
|
catch_ada_handlers_command,
|
||||||
NULL,
|
catch_ada_completer,
|
||||||
CATCH_PERMANENT,
|
CATCH_PERMANENT,
|
||||||
CATCH_TEMPORARY);
|
CATCH_TEMPORARY);
|
||||||
add_catch_command ("assert", _("\
|
add_catch_command ("assert", _("\
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
2019-05-10 Tom Tromey <tromey@adacore.com>
|
||||||
|
|
||||||
|
* gdb.ada/info_exc.exp: Add "complete" test.
|
||||||
|
|
||||||
2019-05-09 Tom de Vries <tdevries@suse.de>
|
2019-05-09 Tom de Vries <tdevries@suse.de>
|
||||||
|
|
||||||
* gdb.arch/amd64-tailcall-self.S: Make DW_FORM_ref4 references
|
* gdb.arch/amd64-tailcall-self.S: Make DW_FORM_ref4 references
|
||||||
|
|
|
@ -49,3 +49,7 @@ gdb_test "info exceptions const.aint" \
|
||||||
"constraint_error: $hex" \
|
"constraint_error: $hex" \
|
||||||
"const.aint_global_gdb_e: $hex"]
|
"const.aint_global_gdb_e: $hex"]
|
||||||
|
|
||||||
|
foreach cmd {exception handlers} {
|
||||||
|
gdb_test "complete catch $cmd const.a" \
|
||||||
|
"catch $cmd const.aint_global_gdb_e"
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue