aboutsummaryrefslogtreecommitdiff
path: root/gdb/cli
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@vmware.com>2011-02-21 23:40:47 +0000
committerMichael Snyder <msnyder@vmware.com>2011-02-21 23:40:47 +0000
commitaea5b2797c9c4e3a33c9a9ebd14614165486c293 (patch)
tree790a4578852964b7974de41d2b7503cfc1b8f445 /gdb/cli
parentdfa58db10cd0f761a650f63cd47c15423cda88de (diff)
downloadgdb-aea5b2797c9c4e3a33c9a9ebd14614165486c293.zip
gdb-aea5b2797c9c4e3a33c9a9ebd14614165486c293.tar.gz
gdb-aea5b2797c9c4e3a33c9a9ebd14614165486c293.tar.bz2
2011-02-21 Michael Snyder <msnyder@vmware.com>
* gdbthread.h (print_thread_info): Change prototype. * thread.c (print_thread_info): Accept char* instead of int for requested_threads argument. Use new function number_is_in_list to determine which threads to list. (info_threads_command): Pass char* to print_thread_info. * cli/cli-utils.c (number_is_in_list): New function. * cli/cli-utils.h (number_is_in_list): Export. * mi/mi-main.c (mi_cmd_thread_info): Pass char* to print_thread_info. (print_one_inferior): Ditto. (mi_cmd_list_thread_groups): Ditto. 2011-02-21 Michael Snyder <msnyder@vmware.com> * gdb.threads/thread-find.exp: Update patterns for changes in output of "info threads" command.
Diffstat (limited to 'gdb/cli')
-rw-r--r--gdb/cli/cli-utils.c21
-rw-r--r--gdb/cli/cli-utils.h10
2 files changed, 31 insertions, 0 deletions
diff --git a/gdb/cli/cli-utils.c b/gdb/cli/cli-utils.c
index 0c98ca9..8a7e5d4 100644
--- a/gdb/cli/cli-utils.c
+++ b/gdb/cli/cli-utils.c
@@ -161,6 +161,27 @@ get_number_or_range (char **pp)
return last_retval;
}
+/* 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.
+
+ By definition, an empty list includes all numbers. This is to
+ be interpreted as typing a command such as "delete break" with
+ no arguments. */
+
+int
+number_is_in_list (char *list, int number)
+{
+ if (list == NULL || *list == '\0')
+ return 1;
+
+ while (list != NULL && *list != '\0')
+ if (get_number_or_range (&list) == number)
+ return 1;
+
+ return 0;
+}
+
/* See documentation in cli-utils.h. */
char *
diff --git a/gdb/cli/cli-utils.h b/gdb/cli/cli-utils.h
index e79b82e..6158999 100644
--- a/gdb/cli/cli-utils.h
+++ b/gdb/cli/cli-utils.h
@@ -45,6 +45,16 @@ extern int get_number (char **);
extern int get_number_or_range (char **);
+/* 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.
+
+ By definition, an empty list includes all numbers. This is to
+ be interpreted as typing a command such as "delete break" with
+ no arguments. */
+
+extern int number_is_in_list (char *list, int number);
+
/* Skip leading whitespace characters in INP, returning an updated
pointer. If INP is NULL, return NULL. */