diff options
author | Yao Qi <yao@codesourcery.com> | 2013-03-29 15:21:23 +0000 |
---|---|---|
committer | Yao Qi <yao@codesourcery.com> | 2013-03-29 15:21:23 +0000 |
commit | 9852c492bd1c33290056351227ed7f314ff045c3 (patch) | |
tree | 2e1563c05221d718490bd201bb21eac3b4635288 | |
parent | af312be73153278ccc14e39c40a2bb0923578aa8 (diff) | |
download | gdb-9852c492bd1c33290056351227ed7f314ff045c3.zip gdb-9852c492bd1c33290056351227ed7f314ff045c3.tar.gz gdb-9852c492bd1c33290056351227ed7f314ff045c3.tar.bz2 |
gdb/
2013-03-29 Yao Qi <yao@codesourcery.com>
* corelow.c: Include "completer.h".
(_initialize_corelow): Call add_target_with_completer with
argument 'filename_completer'.
* tracepoint.c: Likewise.
* exec.c (_initialize_exec): Likewise.
* target.c (add_target): Rename to ...
(add_target_with_completer): ... this. Call set_cmd_completer
if parameter completer is not NULL.
(add_target): New.
* target.h: Include "command.h".
(add_target_with_completer): Declare it.
gdb/testsuite:
2013-03-29 Yao Qi <yao@codesourcery.com>
* gdb.base/completion.exp: Test completion of commands
"target core", "target tfile" and "target exec".
* gdb.trace/tfile.exp: Test completion of command
"target tfile".
-rw-r--r-- | gdb/ChangeLog | 14 | ||||
-rw-r--r-- | gdb/corelow.c | 3 | ||||
-rw-r--r-- | gdb/exec.c | 2 | ||||
-rw-r--r-- | gdb/target.c | 22 | ||||
-rw-r--r-- | gdb/target.h | 4 | ||||
-rw-r--r-- | gdb/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/completion.exp | 7 | ||||
-rw-r--r-- | gdb/testsuite/gdb.trace/tfile.exp | 5 | ||||
-rw-r--r-- | gdb/tracepoint.c | 3 |
9 files changed, 61 insertions, 6 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 3b7926a..58251ed 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,17 @@ +2013-03-29 Yao Qi <yao@codesourcery.com> + + * corelow.c: Include "completer.h". + (_initialize_corelow): Call add_target_with_completer with + argument 'filename_completer'. + * tracepoint.c: Likewise. + * exec.c (_initialize_exec): Likewise. + * target.c (add_target): Rename to ... + (add_target_with_completer): ... this. Call set_cmd_completer + if parameter completer is not NULL. + (add_target): New. + * target.h: Include "command.h". + (add_target_with_completer): Declare it. + 2013-03-28 Joel Brobecker <brobecker@adacore.com> * coffread.c (is_import_fixup_symbol): New function. diff --git a/gdb/corelow.c b/gdb/corelow.c index 77bab82..fa48941 100644 --- a/gdb/corelow.c +++ b/gdb/corelow.c @@ -46,6 +46,7 @@ #include "progspace.h" #include "objfiles.h" #include "gdb_bfd.h" +#include "completer.h" #ifndef O_LARGEFILE #define O_LARGEFILE 0 @@ -977,5 +978,5 @@ _initialize_corelow (void) { init_core_ops (); - add_target (&core_ops); + add_target_with_completer (&core_ops, filename_completer); } @@ -943,7 +943,7 @@ Show writing into executable and core files."), NULL, show_write_files, &setlist, &showlist); - add_target (&exec_ops); + add_target_with_completer (&exec_ops, filename_completer); } static char * diff --git a/gdb/target.c b/gdb/target.c index 9193c97..24cc79d 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -384,11 +384,16 @@ target_has_execution_current (void) return target_has_execution_1 (inferior_ptid); } -/* Add a possible target architecture to the list. */ +/* Add possible target architecture T to the list and add a new + command 'target T->to_shortname'. Set COMPLETER as the command's + completer if not NULL. */ void -add_target (struct target_ops *t) +add_target_with_completer (struct target_ops *t, + completer_ftype *completer) { + struct cmd_list_element *c; + /* Provide default values for all "must have" methods. */ if (t->to_xfer_partial == NULL) t->to_xfer_partial = default_xfer_partial; @@ -431,7 +436,18 @@ Remaining arguments are interpreted by the target protocol. For more\n\ information on the arguments for a particular protocol, type\n\ `help target ' followed by the protocol name."), &targetlist, "target ", 0, &cmdlist); - add_cmd (t->to_shortname, no_class, t->to_open, t->to_doc, &targetlist); + c = add_cmd (t->to_shortname, no_class, t->to_open, t->to_doc, + &targetlist); + if (completer != NULL) + set_cmd_completer (c, completer); +} + +/* Add a possible target architecture to the list. */ + +void +add_target (struct target_ops *t) +{ + add_target_with_completer (t, NULL); } /* See target.h. */ diff --git a/gdb/target.h b/gdb/target.h index ee3fbff..4f8520c 100644 --- a/gdb/target.h +++ b/gdb/target.h @@ -63,6 +63,7 @@ struct expression; #include "vec.h" #include "gdb_signals.h" #include "btrace.h" +#include "command.h" enum strata { @@ -1841,6 +1842,9 @@ int target_verify_memory (const gdb_byte *data, extern void add_target (struct target_ops *); +extern void add_target_with_completer (struct target_ops *t, + completer_ftype *completer); + /* Adds a command ALIAS for target T and marks it deprecated. This is useful for maintaining backwards compatibility when renaming targets. */ diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 9c835f2..20a19fc 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2013-03-29 Yao Qi <yao@codesourcery.com> + + * gdb.base/completion.exp: Test completion of commands + "target core", "target tfile" and "target exec". + * gdb.trace/tfile.exp: Test completion of command + "target tfile". + 2013-03-28 Joel Brobecker <brobecker@adacore.com> * gdb.ada/win_fu_syms: New testcase. diff --git a/gdb/testsuite/gdb.base/completion.exp b/gdb/testsuite/gdb.base/completion.exp index cddc548..7b664bf 100644 --- a/gdb/testsuite/gdb.base/completion.exp +++ b/gdb/testsuite/gdb.base/completion.exp @@ -713,6 +713,13 @@ gdb_test "complete set gnutarget aut" "set gnutarget auto" gdb_test "complete set cp-abi aut" "set cp-abi auto" +# Test that completion of commands 'target FOO' works well. + +foreach target_name { "core" "tfile" "exec" } { + gdb_test "complete target ${target_name} ./gdb.base/completion" \ + "target ${target_name} ./gdb.base/completion\\.exp.*" +} + # Restore globals modified in this test... set timeout $oldtimeout1 diff --git a/gdb/testsuite/gdb.trace/tfile.exp b/gdb/testsuite/gdb.trace/tfile.exp index 56e2a79..f259952 100644 --- a/gdb/testsuite/gdb.trace/tfile.exp +++ b/gdb/testsuite/gdb.trace/tfile.exp @@ -125,3 +125,8 @@ gdb_test \ gdb_test "interpreter-exec mi \"-trace-status\"" \ "\\^done,supported=\"file\",trace-file=\".*basic.tf\",running=\"0\",stop-reason=\"request\",frames=\"${decimal}\",frames-created=\"${decimal}\",buffer-size=\"${decimal}\",buffer-free=\"${decimal}\",disconnected=\".*\",circular=\".*\",user-name=\"\",notes=\"\",start-time=\".*\",stop-time=\".*\"" \ "-trace-status" + +# Test completion works well. + +gdb_test "target tfile basic\t" "Assuming tracepoint.*" \ + "complete-command 'target tfile'" diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c index 9a2425b..009db82 100644 --- a/gdb/tracepoint.c +++ b/gdb/tracepoint.c @@ -54,6 +54,7 @@ #include "cli/cli-utils.h" #include "probe.h" #include "ctf.h" +#include "completer.h" /* readline include files */ #include "readline/readline.h" @@ -5904,5 +5905,5 @@ Show the notes string to use for future tstop commands"), NULL, init_tfile_ops (); - add_target (&tfile_ops); + add_target_with_completer (&tfile_ops, filename_completer); } |