Updated copyright notices for most files.
[deliverable/binutils-gdb.git] / gdb / mi / mi-cmds.h
CommitLineData
4389a95a
AC
1/* MI Command Set for GDB, the GNU debugger.
2
9b254dd1
DJ
3 Copyright (C) 2000, 2003, 2004, 2005, 2007, 2008
4 Free Software Foundation, Inc.
4389a95a 5
ab91fdd5 6 Contributed by Cygnus Solutions (a Red Hat company).
fb40c209
AC
7
8 This file is part of GDB.
9
10 This program is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
a9762ec7 12 the Free Software Foundation; either version 3 of the License, or
fb40c209
AC
13 (at your option) any later version.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
a9762ec7 21 along with this program. If not, see <http://www.gnu.org/licenses/>. */
fb40c209
AC
22
23#ifndef MI_CMDS_H
24#define MI_CMDS_H
25
26/* An MI command can return any of the following. */
27
28enum mi_cmd_result
29 {
30 /* Report the command as ``done''. Display both the ``NNN^done''
31 message and the completion prompt. */
32 MI_CMD_DONE = 0,
33 /* The command is still running in the forground. Main loop should
34 display the completion prompt. */
35 MI_CMD_FORGROUND,
36 /* An error condition was detected and an error message was
37 asprintf'd into the mi_error_message buffer. The main loop will
38 display the error message and the completion prompt. */
39 MI_CMD_ERROR,
fb40c209
AC
40 /* The MI command has already displayed its completion message.
41 Main loop will not display a completion message but will display
42 the completion prompt. */
43 MI_CMD_QUIET
44 };
45
90e645cd
NR
46enum print_values {
47 PRINT_NO_VALUES,
48 PRINT_ALL_VALUES,
49 PRINT_SIMPLE_VALUES
50};
51
1ecb4ee0
DJ
52extern const char mi_no_values[];
53extern const char mi_simple_values[];
54extern const char mi_all_values[];
55
fb40c209
AC
56typedef enum mi_cmd_result (mi_cmd_argv_ftype) (char *command, char **argv, int argc);
57
58/* Older MI commands have this interface. Retained until all old
59 commands are flushed. */
60
61typedef enum mi_cmd_result (mi_cmd_args_ftype) ( /*ui */ char *args, int from_tty);
62
63/* Function implementing each command */
64extern mi_cmd_argv_ftype mi_cmd_break_insert;
65extern mi_cmd_argv_ftype mi_cmd_break_watch;
66extern mi_cmd_argv_ftype mi_cmd_disassemble;
67extern mi_cmd_argv_ftype mi_cmd_data_evaluate_expression;
68extern mi_cmd_argv_ftype mi_cmd_data_list_register_names;
69extern mi_cmd_argv_ftype mi_cmd_data_list_register_values;
70extern mi_cmd_argv_ftype mi_cmd_data_list_changed_registers;
71extern mi_cmd_argv_ftype mi_cmd_data_read_memory;
72extern mi_cmd_argv_ftype mi_cmd_data_write_memory;
24e8cecf 73extern mi_cmd_argv_ftype mi_cmd_data_write_register_values;
d8c83789 74extern mi_cmd_argv_ftype mi_cmd_enable_timings;
068890be
JJ
75extern mi_cmd_argv_ftype mi_cmd_env_cd;
76extern mi_cmd_argv_ftype mi_cmd_env_dir;
77extern mi_cmd_argv_ftype mi_cmd_env_path;
78extern mi_cmd_argv_ftype mi_cmd_env_pwd;
fb40c209
AC
79extern mi_cmd_args_ftype mi_cmd_exec_continue;
80extern mi_cmd_args_ftype mi_cmd_exec_finish;
81extern mi_cmd_args_ftype mi_cmd_exec_next;
82extern mi_cmd_args_ftype mi_cmd_exec_next_instruction;
83extern mi_cmd_args_ftype mi_cmd_exec_return;
84extern mi_cmd_args_ftype mi_cmd_exec_run;
85extern mi_cmd_args_ftype mi_cmd_exec_step;
86extern mi_cmd_args_ftype mi_cmd_exec_step_instruction;
87extern mi_cmd_args_ftype mi_cmd_exec_until;
88extern mi_cmd_args_ftype mi_cmd_exec_interrupt;
1abaf70c 89extern mi_cmd_argv_ftype mi_cmd_file_list_exec_source_file;
57c22c6c 90extern mi_cmd_argv_ftype mi_cmd_file_list_exec_source_files;
fb40c209 91extern mi_cmd_argv_ftype mi_cmd_gdb_exit;
3cb3b8df
BR
92extern mi_cmd_argv_ftype mi_cmd_inferior_tty_set;
93extern mi_cmd_argv_ftype mi_cmd_inferior_tty_show;
4389a95a 94extern mi_cmd_argv_ftype mi_cmd_interpreter_exec;
084344da 95extern mi_cmd_argv_ftype mi_cmd_list_features;
fb40c209 96extern mi_cmd_argv_ftype mi_cmd_stack_info_depth;
3ba51a77 97extern mi_cmd_argv_ftype mi_cmd_stack_info_frame;
fb40c209
AC
98extern mi_cmd_argv_ftype mi_cmd_stack_list_args;
99extern mi_cmd_argv_ftype mi_cmd_stack_list_frames;
100extern mi_cmd_argv_ftype mi_cmd_stack_list_locals;
101extern mi_cmd_argv_ftype mi_cmd_stack_select_frame;
0d18235f 102extern mi_cmd_argv_ftype mi_cmd_symbol_list_lines;
fb40c209 103extern mi_cmd_args_ftype mi_cmd_target_download;
a6b151f1
DJ
104extern mi_cmd_argv_ftype mi_cmd_target_file_get;
105extern mi_cmd_argv_ftype mi_cmd_target_file_put;
106extern mi_cmd_argv_ftype mi_cmd_target_file_delete;
fb40c209
AC
107extern mi_cmd_args_ftype mi_cmd_target_select;
108extern mi_cmd_argv_ftype mi_cmd_thread_list_ids;
109extern mi_cmd_argv_ftype mi_cmd_thread_select;
110extern mi_cmd_argv_ftype mi_cmd_var_assign;
111extern mi_cmd_argv_ftype mi_cmd_var_create;
112extern mi_cmd_argv_ftype mi_cmd_var_delete;
113extern mi_cmd_argv_ftype mi_cmd_var_evaluate_expression;
114extern mi_cmd_argv_ftype mi_cmd_var_info_expression;
02142340 115extern mi_cmd_argv_ftype mi_cmd_var_info_path_expression;
fb40c209
AC
116extern mi_cmd_argv_ftype mi_cmd_var_info_num_children;
117extern mi_cmd_argv_ftype mi_cmd_var_info_type;
118extern mi_cmd_argv_ftype mi_cmd_var_list_children;
119extern mi_cmd_argv_ftype mi_cmd_var_set_format;
25d5ea92 120extern mi_cmd_argv_ftype mi_cmd_var_set_frozen;
fb40c209
AC
121extern mi_cmd_argv_ftype mi_cmd_var_show_attributes;
122extern mi_cmd_argv_ftype mi_cmd_var_show_format;
123extern mi_cmd_argv_ftype mi_cmd_var_update;
124
125/* Description of a single command. */
126
b2af646b
AC
127struct mi_cli
128{
129 /* Corresponding CLI command. If ARGS_P is non-zero, the MI
130 command's argument list is appended to the CLI command. */
131 const char *cmd;
132 int args_p;
133};
134
fb40c209 135struct mi_cmd
b2af646b
AC
136{
137 /* official name of the command. */
138 const char *name;
139 /* The corresponding CLI command that can be used to implement this
140 MI command (if cli.lhs is non NULL). */
141 struct mi_cli cli;
142 /* If non-null, the function implementing the MI command. */
143 mi_cmd_args_ftype *args_func;
144 /* If non-null, the function implementing the MI command. */
145 mi_cmd_argv_ftype *argv_func;
146};
fb40c209
AC
147
148/* Lookup a command in the mi comand table */
149
150extern struct mi_cmd *mi_lookup (const char *command);
151
152/* Debug flag */
153extern int mi_debug_p;
154
155/* Raw console output - FIXME: should this be a parameter? */
156extern struct ui_file *raw_stdout;
157
4389a95a 158extern char *mi_error_message;
4389a95a
AC
159extern void mi_execute_command (char *cmd, int from_tty);
160
fb40c209 161#endif
This page took 0.600476 seconds and 4 git commands to generate.