102 int skip_unavailable);
118 error (
_(
"Cannot change this setting while the inferior is running."));
130 _(
"Whether MI is in asynchronous mode is %s.\n"),
171 if (argc > 0 && strcmp(
argv[0],
"--reverse") == 0)
181 if (argc > 0 && strcmp(
argv[0],
"--reverse") == 0)
191 if (argc > 0 && strcmp(
argv[0],
"--reverse") == 0)
201 if (argc > 0 && strcmp(
argv[0],
"--reverse") == 0)
211 if (argc > 0 && strcmp(
argv[0],
"--reverse") == 0)
260 int pid = *(
int *)arg;
324 error (
_(
"Already in reverse mode."));
337 if (
argc > 0 && strcmp (
argv[0],
"--reverse") == 0)
346 int pid = *(
int *)arg;
405 int start_p = *(
int *) arg;
406 const char *run_cmd = start_p ?
"start" :
"run";
418 error (
_(
"Inferior has no threads."));
430 async_p ?
"&" : NULL);
444 static const struct mi_opt opts[] =
446 {
"-start", START_OPT, 0},
455 int opt =
mi_getopt (
"-exec-run", argc,
argv, opts, &oind, &oarg);
459 switch ((
enum opt) opt)
470 error (
_(
"Invalid argument: %s"),
argv[oind]);
480 const char *run_cmd = start_p ?
"start" :
"run";
485 async_p ?
"&" : NULL);
504 if (argc != 0 && argc != 1)
505 error (
_(
"Usage: -target-detach [pid | thread-group]"));
517 int id = strtoul (
argv[0] + 1, &end, 0);
520 error (
_(
"Invalid syntax of thread-group id '%s'"),
argv[0]);
524 error (
_(
"Non-existent thread-group id '%d'"),
id);
531 pid = strtol (
argv[0], &end, 10);
534 error (
_(
"Invalid identifier '%s'"),
argv[0]);
541 error (
_(
"Thread group is empty"));
559 error (
_(
"-thread-select: USAGE: threadnum."));
564 error (
_(
"Thread ID %d not known."),
num);
585 error (
_(
"-thread-list-ids: No arguments required."));
614 if (argc != 0 && argc != 1)
615 error (
_(
"Invalid MI command"));
636 data->
cores.insert (core);
682 if (!data.
cores.empty ())
686 for (
int b : data.
cores)
706 char *p =
cores.get ();
708 for (p = strtok (p,
","); p; p = strtok (NULL,
","))
719 std::map<int, std::vector<osdata_item>> tree;
722 std::unique_ptr<osdata> data =
get_osdata (
"processes");
726 std::unique_ptr<osdata> threads =
get_osdata (
"threads");
731 int pid_i = strtoul (
pid->c_str (), NULL, 0);
733 tree[pid_i].push_back (item);
746 int pid_i = strtoul (
pid->c_str (), NULL, 0);
751 if (!ids.empty () && ids.find (pid_i) == ids.end ())
767 auto n = tree.find (pid_i);
768 if (n != tree.end ())
770 std::vector<osdata_item> &children = n->second;
799 AVAILABLE_OPT, RECURSE_OPT
801 static const struct mi_opt opts[] =
803 {
"-available", AVAILABLE_OPT, 0},
804 {
"-recurse", RECURSE_OPT, 1},
813 int opt =
mi_getopt (
"-list-thread-groups", argc,
argv, opts,
818 switch ((
enum opt) opt)
824 if (strcmp (oarg,
"0") == 0)
826 else if (strcmp (oarg,
"1") == 0)
829 error (
_(
"only '0' and '1' are valid values " 830 "for the '--recurse' option"));
835 for (; oind < argc; ++oind)
840 if (*(
argv[oind]) !=
'i')
841 error (
_(
"invalid syntax of group id '%s'"),
argv[oind]);
843 inf = strtoul (
argv[oind] + 1, &end, 0);
846 error (
_(
"invalid syntax of group id '%s'"),
argv[oind]);
854 else if (ids.size () == 1)
857 int id = *(ids.begin ());
861 error (
_(
"Non-existent thread group id '%d'"),
id);
917 for (i = 0; i < argc; i++)
920 if (regnum < 0 || regnum >= numregs)
921 error (
_(
"bad register number"));
934 static std::unique_ptr<struct regcache> this_regs;
936 std::unique_ptr<struct regcache> prev_regs;
946 prev_regs = std::move (this_regs);
979 for (i = 0; i < argc; i++)
993 error (
_(
"bad register number"));
1002 struct value *prev_value, *this_value;
1040 int regnum, numregs, format;
1042 int skip_unavailable = 0;
1048 static const struct mi_opt opts[] =
1050 {
"-skip-unavailable", SKIP_UNAVAILABLE, 0},
1064 int opt =
mi_getopt (
"-data-list-register-values", argc,
argv,
1065 opts, &oind, &oarg);
1069 switch ((
enum opt) opt)
1071 case SKIP_UNAVAILABLE:
1072 skip_unavailable = 1;
1077 if (argc - oind < 1)
1078 error (
_(
"-data-list-register-values: Usage: " 1079 "-data-list-register-values [--skip-unavailable] <format>" 1080 " [<regnum1>...<regnumN>]"));
1082 format = (int)
argv[oind][0];
1090 if (argc - oind == 1)
1106 for (i = 1 + oind; i < argc; i++)
1116 error (
_(
"bad register number"));
1126 int skip_unavailable)
1177 error (
_(
"-data-write-register-values: Usage: -data-write-register-" 1178 "values <format> [<regnum1> <value1>...<regnumN> <valueN>]"));
1181 error (
_(
"-data-write-register-values: No registers."));
1184 error (
_(
"-data-write-register-values: No regs and values specified."));
1187 error (
_(
"-data-write-register-values: " 1188 "Regs and vals are not in pairs."));
1190 for (i = 1; i < argc; i = i + 2)
1207 error (
_(
"bad register number"));
1223 error (
_(
"-data-evaluate-expression: " 1224 "Usage: -data-evaluate-expression expression"));
1265 long total_bytes, nr_cols, nr_rows;
1267 struct type *word_type;
1279 static const struct mi_opt opts[] =
1281 {
"o", OFFSET_OPT, 1},
1292 switch ((
enum opt) opt)
1302 if (argc < 5 || argc > 6)
1303 error (
_(
"-data-read-memory: Usage: " 1304 "ADDR WORD-FORMAT WORD-SIZE NR-ROWS NR-COLS [ASCHAR]."));
1312 word_format =
argv[1][0];
1314 word_size = atol (
argv[2]);
1338 nr_rows = atol (
argv[3]);
1340 error (
_(
"-data-read-memory: invalid number of rows."));
1343 nr_cols = atol (
argv[4]);
1345 error (
_(
"-data-read-memory: invalid number of columns."));
1354 total_bytes = word_size * nr_rows * nr_cols;
1364 error (
_(
"Unable to read memory."));
1368 uiout->
field_int (
"nr-bytes", nr_bytes);
1369 uiout->
field_int (
"total-bytes", total_bytes);
1383 for (row = 0, row_byte = 0;
1385 row++, row_byte += nr_cols * word_size)
1398 for (col = 0, col_byte = row_byte;
1400 col++, col_byte += word_size)
1402 if (col_byte + word_size > nr_bytes)
1410 word_asize, &stream);
1421 for (byte = row_byte;
1422 byte < row_byte + word_size * nr_cols; byte++)
1424 if (byte >= nr_bytes)
1426 else if (mbuf[byte] < 32 || mbuf[byte] > 126)
1427 stream.
putc (aschar);
1429 stream.
putc (mbuf[byte]);
1452 static const struct mi_opt opts[] =
1454 {
"o", OFFSET_OPT, 1},
1460 int opt =
mi_getopt (
"-data-read-memory-bytes", argc,
argv, opts,
1464 switch ((
enum opt) opt)
1475 error (
_(
"Usage: [ -o OFFSET ] ADDR LENGTH."));
1478 length = atol (
argv[1]);
1480 std::vector<memory_read_result> result
1483 if (result.size () == 0)
1484 error (
_(
"Unable to read memory."));
1496 (read_result.end - read_result.begin)
1536 static const struct mi_opt opts[] =
1538 {
"o", OFFSET_OPT, 1},
1544 int opt =
mi_getopt (
"-data-write-memory", argc,
argv, opts,
1549 switch ((
enum opt) opt)
1560 error (
_(
"-data-write-memory: Usage: " 1561 "[-o COLUMN_OFFSET] ADDR FORMAT WORD-SIZE VALUE."));
1567 word_size = atol (
argv[2]);
1570 addr += (
offset * word_size);
1592 size_t len_hex, len_bytes, len_units, i, steps, remaining_units;
1593 long int count_units;
1596 if (argc != 2 && argc != 3)
1597 error (
_(
"Usage: ADDR DATA [COUNT]."));
1601 len_hex = strlen (cdata);
1604 if (len_hex % (unit_size * 2) != 0)
1605 error (
_(
"Hex-encoded '%s' must represent an integral number of " 1606 "addressable memory units."),
1609 len_bytes = len_hex / 2;
1610 len_units = len_bytes / unit_size;
1613 count_units = strtoul (
argv[2], NULL, 10);
1615 count_units = len_units;
1619 for (i = 0; i < len_bytes; ++i)
1622 if (sscanf (cdata + i * 2,
"%02x", &x) != 1)
1623 error (
_(
"Invalid argument"));
1628 if (len_units < count_units)
1635 steps = count_units / len_units;
1637 remaining_units = count_units % len_units;
1638 for (i = 0; i < steps; i++)
1639 memcpy (&data[i * len_bytes], &databuf[0], len_bytes);
1641 if (remaining_units > 0)
1642 memcpy (&data[steps * len_bytes], &databuf[0],
1643 remaining_units * unit_size);
1649 data = std::move (databuf);
1662 if (strcmp (
argv[0],
"yes") == 0)
1664 else if (strcmp (
argv[0],
"no") == 0)
1675 error (
_(
"-enable-timings: Usage: %s {yes|no}"), command);
1690 uiout->
field_string (NULL,
"breakpoint-notifications");
1694 uiout->
field_string (NULL,
"undefined-command-error-code");
1703 error (
_(
"-list-features should be passed no arguments"));
1721 error (
_(
"-list-target-features should be passed no arguments"));
1730 error (
_(
"-add-inferior should be passed no arguments"));
1756 error (
_(
"-remove-inferior should be passed a single argument"));
1758 if (sscanf (
argv[0],
"i%d", &
id) != 1)
1759 error (
_(
"the thread group id is syntactically invalid"));
1763 error (
_(
"the specified thread group does not exist"));
1766 error (
_(
"cannot remove an active inferior"));
1774 if (new_inferior == NULL)
1775 error (
_(
"Cannot remove last inferior"));
1778 if (new_inferior->
pid != 0)
1809 switch (context->
op)
1816 " token=`%s' command=`%s' args=`%s'\n",
1892 if (exception.
message == NULL)
1898 switch (exception.
error)
1917 return (strncmp (command->
command,
"thread ", 7) == 0
1918 || strncmp (command->
command,
"inferior ", 9) == 0);
1922 if (strcmp (command->
command,
"interpreter-exec") == 0
1923 && command->
argc > 1)
1926 return (strncmp (command->
argv[1],
"thread ", 7) == 0
1927 || strncmp (command->
argv[1],
"inferior ", 9) == 0);
1932 return strcmp (command->
command,
"thread-select") == 0;
1940 std::unique_ptr<struct mi_parse> command;
1960 if (command != NULL)
1966 if (command->cmd != NULL && command->cmd->suppress_notification != NULL)
1967 restore_suppress.
emplace (command->cmd->suppress_notification, 1);
1969 command->token =
token;
2010 int report_change = 0;
2012 if (command->thread == -1)
2022 report_change = (ti->
global_num != command->thread);
2040 error (
_(
"Cannot specify --thread-group together with --all"));
2043 error (
_(
"Cannot specify --thread together with --all"));
2045 if (
parse->thread_group != -1 &&
parse->thread != -1)
2046 error (
_(
"Cannot specify --thread together with --thread-group"));
2048 if (
parse->frame != -1 &&
parse->thread == -1)
2049 error (
_(
"Cannot specify --frame without --thread"));
2051 if (
parse->thread_group != -1)
2057 error (
_(
"Invalid thread group for the --thread-group option"));
2071 if (
parse->thread != -1)
2076 error (
_(
"Invalid thread id: %d"),
parse->thread);
2079 error (
_(
"Thread id: %d has terminated"),
parse->thread);
2084 if (
parse->frame != -1)
2087 int frame =
parse->frame;
2094 error (
_(
"Invalid frame id: %d"), frame);
2106 if (
parse->cmd->argv_func != NULL)
2110 else if (
parse->cmd->cli.cmd != 0)
2123 stb.
puts (
"Undefined mi command: ");
2125 stb.
puts (
" (missing implementation)");
2167 unsigned long sent_so_far,
2168 unsigned long total_section,
2169 unsigned long total_sent,
2170 unsigned long grand_total)
2173 static steady_clock::time_point last_update;
2174 static char *previous_sect_name = NULL;
2182 std::unique_ptr<ui_out> uiout;
2197 new_section = (previous_sect_name ?
2198 strcmp (previous_sect_name, section_name) : 1);
2201 xfree (previous_sect_name);
2202 previous_sect_name = xstrdup (section_name);
2209 uiout->field_string (
"section", section_name);
2210 uiout->field_int (
"section-size", total_section);
2211 uiout->field_int (
"total-size", grand_total);
2218 steady_clock::time_point time_now = steady_clock::now ();
2219 if (time_now - last_update > milliseconds (500))
2221 last_update = time_now;
2227 uiout->field_string (
"section", section_name);
2228 uiout->field_int (
"section-sent", sent_so_far);
2229 uiout->field_int (
"section-size", total_section);
2230 uiout->field_int (
"total-sent", total_sent);
2231 uiout->field_int (
"total-size", grand_total);
2278 ",time={wallclock=\"%0.5f\",user=\"%0.5f\",system=\"%0.5f\"}",
2289 if (argc != 1 && argc != 2)
2290 error (
_(
"Usage: -trace-define-variable VARIABLE [VALUE]"));
2294 error (
_(
"Name of trace variable should start with '$'"));
2312 error (
_(
"-trace-list-variables: no arguments allowed"));
2323 error (
_(
"trace selection mode is required"));
2327 if (strcmp (mode,
"none") == 0)
2335 if (strcmp (mode,
"frame-number") == 0)
2338 error (
_(
"frame number is required"));
2341 else if (strcmp (mode,
"tracepoint-number") == 0)
2344 error (
_(
"tracepoint number is required"));
2347 else if (strcmp (mode,
"pc") == 0)
2350 error (
_(
"PC is required"));
2353 else if (strcmp (mode,
"pc-inside-range") == 0)
2356 error (
_(
"Start and end PC are required"));
2360 else if (strcmp (mode,
"pc-outside-range") == 0)
2363 error (
_(
"Start and end PC are required"));
2367 else if (strcmp (mode,
"line") == 0)
2370 error (
_(
"Line is required"));
2372 std::vector<symtab_and_line> sals
2378 error (
_(
"Could not find the specified line"));
2384 error (
_(
"Could not find the specified line"));
2387 error (
_(
"Invalid mode '%s'"), mode);
2396 int target_saves = 0;
2397 int generate_ctf = 0;
2404 TARGET_SAVE_OPT, CTF_OPT
2406 static const struct mi_opt opts[] =
2408 {
"r", TARGET_SAVE_OPT, 0},
2409 {
"ctf", CTF_OPT, 0},
2420 switch ((
enum opt) opt)
2422 case TARGET_SAVE_OPT:
2431 if (argc - oind != 1)
2432 error (
_(
"Exactly one argument required " 2433 "(file in which to save trace data)"));
2435 filename =
argv[oind];
2467 if (argc != 0 && argc != 1)
2468 error (
_(
"Invalid MI command"));
2493 tuple_emitter.
emplace (uiout,
nullptr);
2540 int registers_format =
'x';
2541 int memory_contents = 0;
2550 static const struct mi_opt opts[] =
2552 {
"-var-print-values", VAR_PRINT_VALUES, 1},
2553 {
"-comp-print-values", COMP_PRINT_VALUES, 1},
2554 {
"-registers-format", REGISTERS_FORMAT, 1},
2555 {
"-memory-contents", MEMORY_CONTENTS, 0},
2562 int opt =
mi_getopt (
"-trace-frame-collected", argc,
argv, opts,
2566 switch ((
enum opt) opt)
2568 case VAR_PRINT_VALUES:
2571 case COMP_PRINT_VALUES:
2574 case REGISTERS_FORMAT:
2575 registers_format = oarg[0];
2576 case MEMORY_CONTENTS:
2577 memory_contents = 1;
2583 error (
_(
"Usage: -trace-frame-collected " 2584 "[--var-print-values PRINT_VALUES] " 2585 "[--comp-print-values PRINT_VALUES] " 2586 "[--registers-format FORMAT]" 2587 "[--memory-contents]"));
2600 clist = &stepping_list;
2602 clist = &tracepoint_list;
2609 const std::vector<std::string> &wholly_collected
2611 for (
size_t i = 0; i < wholly_collected.size (); i++)
2622 const std::vector<std::string> &computed = clist->
computed ();
2623 for (
size_t i = 0; i < computed.size (); i++)
2660 for (
int tvar : tinfo->
tvars)
2686 std::vector<mem_range> available_memory;
2692 for (
const mem_range &r : available_memory)
2703 if (memory_contents)
2724 Set whether MI asynchronous mode is enabled."),
_(
"\ 2725 Show whether MI asynchronous mode is enabled."),
_(
"\ 2726 Tells GDB whether MI should be in asynchronous mode."),
struct gdbarch * target_gdbarch(void)
#define target_can_async_p()
static void print_diff(struct ui_file *file, struct mi_timestamp *start, struct mi_timestamp *end)
int have_live_inferiors(void)
void flash_erase_command(const char *cmd, int from_tty)
#define target_has_registers
struct traceframe_info * get_traceframe_info(void)
struct mi_timestamp * cmd_start
static constexpr ptid_t tid
void return_command(const char *, int)
#define target_can_execute_reverse
void mi_cmd_list_thread_groups(const char *command, char **argv, int argc)
void mi_cmd_list_target_features(const char *command, char **argv, int argc)
struct frame_info * get_selected_frame(const char *message)
void target_stop(ptid_t ptid)
void detach_command(const char *args, int from_tty)
void field_core_addr(const char *fldname, struct gdbarch *gdbarch, CORE_ADDR address)
struct frame_info * get_current_frame(void)
void mi_cmd_trace_start(const char *command, char **argv, int argc)
void field_string(const char *fldname, const char *string)
static void proceed_thread(struct thread_info *thread, int pid)
void mi_load_progress(const char *section_name, unsigned long sent_so_far, unsigned long total_section, unsigned long total_sent, unsigned long grand_total)
int ptid_get_pid(const ptid_t &ptid)
void fputs_unfiltered(const char *buf, struct ui_file *file)
gdb::unique_xmalloc_ptr< expression > expression_up
void error_stream(const string_file &stream)
void mi_cmd_thread_list_ids(const char *command, char **argv, int argc)
mach_port_t mach_port_t name mach_port_t mach_port_t name kern_return_t int int rusage_t pid_t pid
void interrupt_target_1(int all_threads)
char * int_string(LONGEST val, int radix, int is_signed, int width, int use_c_format)
struct value * cooked_read_value(int regnum)
static int parse(struct parser_state *ps)
LONGEST value_as_long(struct value *val)
static struct mi_timestamp * current_command_ts
void stop_tracing(const char *note)
struct cmd_list_element * deprecate_cmd(struct cmd_list_element *cmd, const char *replacement)
regcache(gdbarch *gdbarch)
LONGEST value_embedded_offset(const struct value *value)
const struct mi_cmd * cmd
void async_enable_stdin(void)
enum language set_language(enum language lang)
void mi_cmd_trace_status(const char *command, char **argv, int argc)
int bin2hex(const gdb_byte *bin, char *hex, int count)
void regcache_cooked_write_signed(struct regcache *regcache, int regnum, LONGEST val)
void field_skip(const char *fldname)
void get_formatted_print_options(struct value_print_options *opts, char format)
const struct builtin_type * builtin_type(struct gdbarch *gdbarch)
void common_val_print(struct value *val, struct ui_file *stream, int recurse, const struct value_print_options *options, const struct language_defn *language)
void mi_cmd_add_inferior(const char *command, char **argv, int argc)
void select_frame(struct frame_info *fi)
const std::vector< std::string > & computed()
struct thread_info * inferior_thread(void)
struct ui_out * interp_ui_out(struct interp *interp)
void observer_notify_user_selected_context_changed(user_selected_what selection)
#define target_log_command(p)
static int proceed_thread_callback(struct thread_info *thread, void *arg)
void value_free(struct value *val)
void trace_status_mi(int on_stop)
static int interrupt_thread_callback(struct thread_info *thread, void *arg)
void type_print(struct type *type, const char *varstring, struct ui_file *stream, int show)
static int find_thread_of_process(struct thread_info *ti, void *p)
std::unique_ptr< osdata > get_osdata(const char *type)
struct bp_location * get_traceframe_location(int *stepping_frame_p)
void mi_cmd_exec_next(const char *command, char **argv, int argc)
const std::set< int > * inferiors
void get_no_prettyformat_print_options(struct value_print_options *opts)
static void mi_cmd_execute(struct mi_parse *parse)
const std::vector< std::string > & wholly_collected()
struct inferior * iterate_over_inferiors(int(*callback)(struct inferior *, void *), void *data)
int gdbarch_num_regs(struct gdbarch *gdbarch)
static int get_other_inferior(struct inferior *inf, void *arg)
void mi_cmd_trace_stop(const char *command, char **argv, int argc)
void mi_cmd_trace_define_variable(const char *command, char **argv, int argc)
mi_ui_out * mi_out_new(int mi_version)
void mi_cmd_target_detach(const char *command, char **argv, int argc)
static void mi_execute_async_cli_command(const char *cli_command, char **argv, int argc)
void mi_cmd_gdb_exit(const char *command, char **argv, int argc)
struct regcache * get_current_regcache(void)
struct type * builtin_int32
std::chrono::steady_clock::time_point wallclock
void mi_cmd_data_list_register_names(const char *command, char **argv, int argc)
void mi_cmd_data_list_changed_registers(const char *command, char **argv, int argc)
void set_current_program_space(struct program_space *pspace)
struct ui_file * raw_stdout
void execute_command(const char *, int)
static struct mi_parse * current_context
struct program_space * pspace
struct trace_status * current_trace_status(void)
int gdbarch_addressable_memory_unit_size(struct gdbarch *gdbarch)
scoped_restore_tmpl< T > make_scoped_restore(T *var)
int gdbarch_num_pseudo_regs(struct gdbarch *gdbarch)
#define target_get_trace_state_variable_value(tsv, val)
struct value * evaluate_expression(struct expression *exp)
void mi_cmd_target_flash_erase(const char *command, char **argv, int argc)
struct thread_info * iterate_over_threads(thread_callback_func, void *)
void switch_to_thread(ptid_t ptid)
static int collect_cores(struct thread_info *ti, void *xdata)
struct cmd_list_element * setlist
bool value_contents_eq(const struct value *val1, LONGEST offset1, const struct value *val2, LONGEST offset2, LONGEST length)
void trace_save_ctf(const char *dirname, int target_does_save)
void fputstr_unfiltered(const char *str, int quoter, struct ui_file *stream)
void thread_select(const char *tidstr, class thread_info *thr)
struct interp * current_interpreter(void)
int is_stopped(ptid_t ptid)
struct type * check_typedef(struct type *type)
int mi_getopt(const char *prefix, int argc, char **argv, const struct mi_opt *opts, int *oind, char **oarg)
enum exec_direction_kind execution_direction
#define CATCH(EXCEPTION, MASK)
void mi_cmd_trace_save(const char *command, char **argv, int argc)
std::unique_ptr< T, xfree_deleter< T > > unique_xmalloc_ptr
struct target_ops current_target
void mi_cmd_data_write_memory(const char *command, char **argv, int argc)
void print_ada_task_info(struct ui_out *uiout, char *taskno_str, struct inferior *inf)
std::unique_ptr< struct mi_parse > mi_parse(const char *cmd, char **token)
struct thread_info * find_thread_global_id(int global_id)
void delete_inferior(struct inferior *todel)
void print_selected_thread_frame(struct ui_out *uiout, user_selected_what selection)
void mi_print_timing_maybe(struct ui_file *file)
void fprintf_filtered(struct ui_file *stream, const char *format,...)
struct frame_info * find_relative_frame(struct frame_info *, int *)
static void exec_reverse_continue(char **argv, int argc)
void void putstr(const char *str, int quoter)
void mi_cmd_trace_list_variables(const char *command, char **argv, int argc)
static void output_register(struct frame_info *, int regnum, int format, int skip_unavailable)
mi_cmd_argv_ftype mi_cmd_interpreter_exec
static int command_notifies_uscc_observer(struct mi_parse *command)
enum prompt_state prompt_state
struct thread_info * any_live_thread_of_process(int pid)
void fprintf_unfiltered(struct ui_file *stream, const char *format,...)
int traceframe_available_memory(std::vector< mem_range > *result, CORE_ADDR memaddr, ULONGEST len)
struct cmd_list_element * showlist
struct type * builtin_int16
void quit_force(int *exit_arg, int from_tty)
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
int get_traceframe_number(void)
static void list_available_thread_groups(const std::set< int > &ids, int recurse)
const std::string * get_osdata_column(const osdata_item &item, const char *name)
void mi_cmd_data_evaluate_expression(const char *command, char **argv, int argc)
void mi_cmd_exec_continue(const char *command, char **argv, int argc)
void mi_cmd_thread_select(const char *command, char **argv, int argc)
void mi_cmd_data_write_memory_bytes(const char *command, char **argv, int argc)
struct gdbarch * get_current_arch(void)
void field_stream(const char *fldname, string_file &stream)
const char * gdbarch_register_name(struct gdbarch *gdbarch, int regnr)
void start_tracing(const char *notes)
int running_result_record_printed
static void timestamp(struct mi_timestamp *tv)
void validate_trace_state_variable_name(const char *name)
void check_trace_running(struct trace_status *status)
virtual void puts(const char *str)
static void set_mi_async_command(const char *args, int from_tty, struct cmd_list_element *c)
void mi_cmd_list_features(const char *command, char **argv, int argc)
struct cmd_list_element * add_alias_cmd(const char *name, cmd_list_element *old, enum command_class theclass, int abbrev_flag, struct cmd_list_element **list)
const struct extension_language_defn * get_ext_lang_defn(enum extension_language lang)
void continue_1(int all_threads)
static void exec_continue(char **argv, int argc)
std::unique_ptr< struct regcache > frame_save_as_regcache(struct frame_info *this_frame)
void mi_cmd_trace_frame_collected(const char *command, char **argv, int argc)
void print_stack_frame(struct frame_info *, int print_level, enum print_what print_what, int set_current_sal)
std::vector< memory_read_result > read_memory_robust(struct target_ops *ops, const ULONGEST offset, const LONGEST len)
static bool register_changed_p(int regnum, regcache *, regcache *)
int find_line_pc_range(struct symtab_and_line sal, CORE_ADDR *startptr, CORE_ADDR *endptr)
void mi_cmd_data_read_memory(const char *command, char **argv, int argc)
user_cpu_time_clock::time_point utime
int value_entirely_available(struct value *value)
void mi_cmd_exec_interrupt(const char *command, char **argv, int argc)
T & emplace(Args &&... args)
const struct language_defn * current_language
void tfind_1(enum trace_find_type type, int num, CORE_ADDR addr1, CORE_ADDR addr2, int from_tty)
#define ALL_NON_EXITED_THREADS(T)
void mi_cmd_exec_next_instruction(const char *command, char **argv, int argc)
void proceed(CORE_ADDR addr, enum gdb_signal siggnal)
void update_thread_list(void)
void mi_cmd_ada_task_info(const char *command, char **argv, int argc)
CORE_ADDR parse_and_eval_address(const char *exp)
#define TYPE_CODE(thistype)
struct value * value_of_register(int regnum, struct frame_info *frame)
void clear_proceed_status(int step)
void mi_cmd_exec_jump(const char *args, char **argv, int argc)
void field_int(const char *fldname, int value)
int target_read_memory(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
scoped_value_mark prepare_execute_command()
void mi_cmd_exec_step_instruction(const char *command, char **argv, int argc)
static void print_variable_or_computed(const char *expression, enum print_values values)
char * pspace_exec_filename
struct interp * command_interp(void)
std::vector< symtab_and_line > decode_line_with_current_source(const char *string, int flags)
void get_user_print_options(struct value_print_options *opts)
void add_setshow_boolean_cmd(const char *name, enum command_class theclass, int *var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_const_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
void tvariables_info_1(void)
void print_thread_info(struct ui_out *uiout, char *requested_threads, int pid)
int(* to_can_async_p)(struct target_ops *) TARGET_DEFAULT_RETURN(0)
void _initialize_mi_main(void)
static void captured_mi_execute_command(struct ui_out *uiout, struct mi_parse *context)
struct trace_state_variable * create_trace_state_variable(const char *name)
static void show_mi_async_command(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
struct target_ops * find_run_target(void)
struct inferior * add_inferior_with_spaces(void)
struct inferior * find_inferior_id(int num)
int target_core_of_thread(ptid_t ptid)
void mi_cmd_exec_step(const char *command, char **argv, int argc)
int ptid_equal(const ptid_t &ptid1, const ptid_t &ptid2)
gdb::def_vector< gdb_byte > byte_vector
struct inferior * current_inferior(void)
void val_print(struct type *type, LONGEST embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, struct value *val, const struct value_print_options *options, const struct language_defn *language)
int is_exited(ptid_t ptid)
void mi_cmd_enable_timings(const char *command, char **argv, int argc)
void print_scalar_formatted(const gdb_byte *, struct type *, const struct value_print_options *, int, struct ui_file *)
struct value * parse_and_eval(const char *exp)
void trace_save_tfile(const char *filename, int target_does_save)
void mi_cmd_thread_info(const char *command, char **argv, int argc)
void mi_cmd_trace_find(const char *command, char **argv, int argc)
static PyObject * field_name(struct type *type, int field)
expression_up parse_expression(const char *)
void release_value(struct value *val)
void encode_actions(struct bp_location *tloc, struct collection_list *tracepoint_list, struct collection_list *stepping_list)
int register_size(struct gdbarch *gdbarch, int regnum)
struct interp * top_level_interpreter(void)
static int run_one_inferior(struct inferior *inf, void *arg)
struct trace_state_variable * find_trace_state_variable(const char *name)
struct type * value_type(const struct value *value)
struct type * builtin_int64
void bpstat_do_actions(void)
LONGEST target_read(struct target_ops *ops, enum target_object object, const char *annex, gdb_byte *buf, ULONGEST offset, LONGEST len)
void mi_cmd_exec_finish(const char *command, char **argv, int argc)
struct value * evaluate_type(struct expression *exp)
struct trace_state_variable * find_trace_state_variable_by_number(int number)
static void mi_execute_cli_command(const char *cmd, int args_p, const char *args)
void mi_cmd_exec_return(const char *command, char **argv, int argc)
void gdb_flush(struct ui_file *file)
static windows_thread_info * current_thread
void write_memory_with_notification(CORE_ADDR memaddr, const bfd_byte *myaddr, ssize_t len)
int is_running(ptid_t ptid)
static void mi_print_exception(const char *token, struct gdb_exception exception)
void mi_out_rewind(ui_out *uiout)
struct type * builtin_int8
void mi_out_put(ui_out *uiout, struct ui_file *stream)
static time_point now() noexcept
enum bfd_endian byte_order
void mi_cmd_data_list_register_values(const char *command, char **argv, int argc)
int current_interp_named_p(const char *interp_name)
void mi_cmd_remove_inferior(const char *command, char **argv, int argc)
int has_stack_frames(void)
enum print_values mi_parse_print_values(const char *name)
void mi_execute_command(const char *cmd, int from_tty)
struct thread_info * any_thread_of_process(int pid)
static void store_signed_integer(gdb_byte *addr, int len, enum bfd_endian byte_order, LONGEST val)
void mi_cmd_data_read_memory_bytes(const char *command, char **argv, int argc)
void error(const char *fmt,...)
void mi_cmd_exec_run(const char *command, char **argv, int argc)
static int print_one_inferior(struct inferior *inferior, void *xdata)
void prepare_execution_command(struct target_ops *target, int background)
struct gdbarch * get_frame_arch(struct frame_info *this_frame)
int ext_lang_initialized_p(const struct extension_language_defn *extlang)
void mi_cmd_data_write_register_values(const char *command, char **argv, int argc)
void set_current_inferior(struct inferior *inf)
struct target_ops * beneath
static void output_cores(struct ui_out *uiout, const char *field_name, const char *xcores)
void field_fmt(const char *fldname, const char *format,...) ATTRIBUTE_PRINTF(3
static void print_diff_now(struct ui_file *file, struct mi_timestamp *start)
system_cpu_time_clock::time_point stime