Make "info threads" use the gdb::option framework
authorPedro Alves <palves@redhat.com>
Tue, 2 Jul 2019 15:34:31 +0000 (16:34 +0100)
committerPedro Alves <palves@redhat.com>
Tue, 2 Jul 2019 15:34:31 +0000 (16:34 +0100)
commit54d6600669256d2b3582d7088d11ab18f6f21f0d
tree8a4e7dc737a929bad2d8d15c51c4f06382911537
parent1faa385ff6b11df26efc46152fe15b31adbf8624
Make "info threads" use the gdb::option framework

This makes "info threads" use the gdb::option framework to process
options.  There's only one option today (-gid), and it isn't used much
frequently unless you're looking at matching MI output.  Still, this
was in the neighborhood of "thread apply" so I had converted it.

The main advantage is that TAB completion now shows you the available
options, and gives you a hint to what the command accepts as operand
argument, including showing a metasyntactic variable:

  (gdb) info threads [TAB]
  -gid  ID

  (gdb) help info threads
  Display currently known threads.
  Usage: info threads [OPTION]... [ID]...

  Options:
    -gid
      Show global thread IDs.

  If ID is given, it is a space-separated list of IDs of threads to display.
  Otherwise, all threads are displayed.
  (gdb)

gdb/ChangeLog:
2019-07-02  Pedro Alves  <palves@redhat.com>

* NEWS (Completion improvements): Mention "info threads".
* thread.c (struct info_threads_opts, info_threads_option_defs)
(make_info_threads_options_def_group): New.
(info_threads_command): Use gdb::option::process_options.
(info_threads_command_completer): New.
(_initialize_thread): Use gdb::option::build_help to build the
help text for "info threads".

gdb/testsuite/ChangeLog:
2019-07-02  Pedro Alves  <palves@redhat.com>

* gdb.base/options.exp (test-info-threads): New procedure.
(top level): Call it.
gdb/ChangeLog
gdb/NEWS
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/options.exp
gdb/thread.c