[Ada] New GDB/MI command: -ada-tasks-info
This patch introduces a new GDB/MI command: -ada-tasks-info, which is meant to be the MI equivalent of the CLI `info tasks' command. This new command returns an array, with each row corresponding to one task. For now, the columns of the array corresponds to the columns displayed in the CLI output. gdb/ChangeLog: * ada-lang.h (struct inferior): Declare. (print_ada_task_info): Add declaration. * ada-tasks.c (print_ada_task_info): Make non-static. * mi/mi-cmds.c (mi_cmds): Add "ada-task-info". * mi/mi-cmds.h (mi_cmd_ada_task_info): Add declaration. * mi/mi-main.c: #include "ada-lang.h". (mi_cmd_list_features): Add "ada-task-info" to the list of supported features. (mi_cmd_ada_task_info): New function.
This commit is contained in:
parent
7ed7d71926
commit
75082e8cbb
6 changed files with 33 additions and 1 deletions
|
@ -1,3 +1,15 @@
|
|||
2011-10-03 Joel Brobecker <brobecker@adacore.com>
|
||||
|
||||
* ada-lang.h (struct inferior): Declare.
|
||||
(print_ada_task_info): Add declaration.
|
||||
* ada-tasks.c (print_ada_task_info): Make non-static.
|
||||
* mi/mi-cmds.c (mi_cmds): Add "ada-task-info".
|
||||
* mi/mi-cmds.h (mi_cmd_ada_task_info): Add declaration.
|
||||
* mi/mi-main.c: #include "ada-lang.h".
|
||||
(mi_cmd_list_features): Add "ada-task-info" to the list
|
||||
of supported features.
|
||||
(mi_cmd_ada_task_info): New function.
|
||||
|
||||
2011-10-03 Joel Brobecker <brobecker@adacore.com>
|
||||
|
||||
* python/python.c (python_run_simple_file): New function.
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#define ADA_LANG_H 1
|
||||
|
||||
struct frame_info;
|
||||
struct inferior;
|
||||
|
||||
#include "value.h"
|
||||
#include "gdbtypes.h"
|
||||
|
@ -385,4 +386,8 @@ extern void iterate_over_live_ada_tasks
|
|||
|
||||
extern int ada_build_task_list (void);
|
||||
|
||||
extern void print_ada_task_info (struct ui_out *uiout,
|
||||
char *taskno_str,
|
||||
struct inferior *inf);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -929,7 +929,7 @@ ada_build_task_list (void)
|
|||
interpreted as a task number, and the table will be limited to
|
||||
that task only. */
|
||||
|
||||
static void
|
||||
void
|
||||
print_ada_task_info (struct ui_out *uiout,
|
||||
char *arg_str,
|
||||
struct inferior *inf)
|
||||
|
|
|
@ -33,6 +33,7 @@ static void build_table (struct mi_cmd *commands);
|
|||
|
||||
struct mi_cmd mi_cmds[] =
|
||||
{
|
||||
{ "ada-task-info", { NULL, 0 }, mi_cmd_ada_task_info },
|
||||
{ "add-inferior", { NULL, 0 }, mi_cmd_add_inferior },
|
||||
{ "break-after", { "ignore", 1 }, NULL },
|
||||
{ "break-condition", { "cond", 1 }, NULL },
|
||||
|
|
|
@ -36,6 +36,7 @@ extern const char mi_all_values[];
|
|||
typedef void (mi_cmd_argv_ftype) (char *command, char **argv, int argc);
|
||||
|
||||
/* Function implementing each command */
|
||||
extern mi_cmd_argv_ftype mi_cmd_ada_task_info;
|
||||
extern mi_cmd_argv_ftype mi_cmd_add_inferior;
|
||||
extern mi_cmd_argv_ftype mi_cmd_break_insert;
|
||||
extern mi_cmd_argv_ftype mi_cmd_break_commands;
|
||||
|
|
|
@ -52,6 +52,7 @@
|
|||
#include "osdata.h"
|
||||
#include "splay-tree.h"
|
||||
#include "tracepoint.h"
|
||||
#include "ada-lang.h"
|
||||
|
||||
#include <ctype.h>
|
||||
#include <sys/time.h>
|
||||
|
@ -1720,6 +1721,7 @@ mi_cmd_list_features (char *command, char **argv, int argc)
|
|||
ui_out_field_string (uiout, NULL, "thread-info");
|
||||
ui_out_field_string (uiout, NULL, "data-read-memory-bytes");
|
||||
ui_out_field_string (uiout, NULL, "breakpoint-notifications");
|
||||
ui_out_field_string (uiout, NULL, "ada-task-info");
|
||||
|
||||
#if HAVE_PYTHON
|
||||
ui_out_field_string (uiout, NULL, "python");
|
||||
|
@ -2503,3 +2505,14 @@ mi_cmd_trace_stop (char *command, char **argv, int argc)
|
|||
stop_tracing ();
|
||||
trace_status_mi (1);
|
||||
}
|
||||
|
||||
/* Implement the "-ada-task-info" GDB/MI command. */
|
||||
|
||||
void
|
||||
mi_cmd_ada_task_info (char *command, char **argv, int argc)
|
||||
{
|
||||
if (argc != 0 && argc != 1)
|
||||
error (_("Invalid MI command"));
|
||||
|
||||
print_ada_task_info (current_uiout, argv[0], current_inferior ());
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue