Star wildcard ranges (e.g., "info thread 2.*")

Add support for specifying "all threads of inferior N", by writing "*"
as thread number/range in thread ID lists.

E.g., "info threads 2.*" or "thread apply 2.* bt".

gdb/ChangeLog:
2016-01-15  Pedro Alves  <palves@redhat.com>

	* NEWS: Mention star wildcard ranges.
	* cli/cli-utils.c (get_number_or_range): Check state->in_range first.
	(number_range_setup_range): New function.
	* cli/cli-utils.h (number_range_setup_range): New declaration.
	* thread.c (thread_apply_command): Support star TID ranges.
	* tid-parse.c (tid_range_parser_finished)
	(tid_range_parser_string, tid_range_parser_skip)
	(get_tid_or_range, get_tid_or_range): Handle
	TID_RANGE_STATE_STAR_RANGE.
	(tid_range_parser_star_range): New function.
	* tid-parse.h (enum tid_range_state) <TID_RANGE_STATE_STAR_RANGE>:
	New value.
	(tid_range_parser_star_range): New declaration.

gdb/doc/ChangeLog:
2016-01-15  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Threads) <thread ID lists>: Document star ranges.

gdb/testsuite/ChangeLog:
2016-01-15  Pedro Alves  <palves@redhat.com>

	* gdb.multi/tids.exp: Test star wildcard ranges.
This commit is contained in:
Pedro Alves 2016-01-15 21:46:23 +00:00
parent 3f5b759880
commit 71ef29a86b
11 changed files with 185 additions and 30 deletions

View file

@ -90,6 +90,14 @@ extern void init_number_or_range (struct get_number_or_range_state *state,
extern int get_number_or_range (struct get_number_or_range_state *state);
/* Setups STATE such that get_number_or_range returns numbers in range
START_VALUE to END_VALUE. When get_number_or_range returns
END_VALUE, the STATE string is advanced to END_PTR. */
extern void number_range_setup_range (struct get_number_or_range_state *state,
int start_value, int end_value,
const char *end_ptr);
/* Accept a number and a string-form list of numbers such as is
accepted by get_number_or_range. Return TRUE if the number is
in the list.