26#include "gdbsupport/event-loop.h"
44#include "gdbsupport/scope-exit.h"
51 (gdb::unique_xmalloc_ptr<char> &&cmd);
91 ssize_t len,
const bfd_byte *myaddr);
143 gdb_assert (mi->
mi_uiout !=
nullptr);
163 "thread-group-added,id=\"i%d\"",
206 return gdb_exception ();
212 struct interp *interp_to_use;
216 error (_(
"-interpreter-exec: "
217 "Usage: -interpreter-exec interp command"));
220 if (interp_to_use == NULL)
221 error (_(
"-interpreter-exec: could not find interpreter \"%s\""),
242 for (i = 1; i < argc; i++)
244 struct gdb_exception e =
interp_exec (interp_to_use, argv[i]);
247 error (
"%s", e.what ());
348 "thread-created,id=\"%d\",group-id=\"i%d\"",
367 "thread-exited,id=\"%d\",group-id=\"i%d\"",
394 "record-started,thread-group=\"i%d\","
395 "method=\"%s\",format=\"%s\"",
401 "record-started,thread-group=\"i%d\","
409 "record-stopped,thread-group=\"i%d\"",
439 "thread-group-added,id=\"i%d\"",
459 "thread-group-started,id=\"i%d\",pid=\"%d\"",
478 if (
inf->has_exit_code)
480 "thread-group-exited,id=\"i%d\",exit-code=\"%s\"",
481 inf->num, int_string (
inf->exit_code, 8, 0, 0, 1));
484 "thread-group-exited,id=\"i%d\"",
inf->num);
504 "thread-group-removed,id=\"i%d\"",
632 struct interp *console_interp;
737 "num=\"%d\",tracepoint=\"%d\"",
762 "name=\"%s\",initial=\"%s\"",
786 "name=\"%s\"", tsv->
name.c_str ());
845 scoped_restore restore_uiout
850 catch (
const gdb_exception &ex)
878 "breakpoint-created");
934 "breakpoint-modified");
952 "*running,thread-id=\"%d\"\n",
996 if ((ptid == minus_one_ptid || ptid.is_pid ())
1021 if (ptid == minus_one_ptid || ptid.is_pid ())
1161 ssize_t len,
const bfd_byte *myaddr)
1191 if (sec != NULL && sec->
objfile != NULL)
1195 if (
flags & SEC_CODE)
1244 "thread-selected,id=\"%d\"",
1274 if (logfile != NULL)
1278 ui_file *logfile_p = logfile.get ();
struct gdbarch * target_gdbarch(void)
void print_breakpoint(breakpoint *b)
struct process_stratum_target * process_target()
virtual ui_out * interp_ui_out()=0
const char * name() const
void set_raw(ui_file *raw)
ui_out * interp_ui_out() override
void pre_command_loop() override
mi_console_file * event_channel
struct ui_out * cli_uiout
struct ui_file * raw_stdout
struct ui_file * saved_raw_stdout
void set_logging(ui_file_up logfile, bool logging_redirect, bool debug_redirect) override
ui_file_up logfile_holder
gdb_exception exec(const char *command_str) override
void init(bool top_level) override
static void ours_for_output()
struct thread_fsm * thread_fsm() const
thread_control_state control
void field_core_addr(const char *fldname, struct gdbarch *gdbarch, CORE_ADDR address)
void field_string(const char *fldname, const char *string, const ui_file_style &style=ui_file_style())
void field_fmt(const char *fldname, const char *format,...) ATTRIBUTE_PRINTF(3
void field_signed(const char *fldname, LONGEST value)
int should_print_stop_to_console(struct interp *console_interp, struct thread_info *tp)
static bool debug_redirect
static bool logging_redirect
int(* deprecated_query_hook)(const char *, va_list) ATTRIBUTE_FPTR_PRINTF(1
void(* deprecated_show_load_progress)(const char *section, unsigned long section_sent, unsigned long section_size, unsigned long total_sent, unsigned long total_size)
void gdb_setup_readline(int editing)
void gdb_disable_readline(void)
void gdb_readline_no_editing_callback(gdb_client_data client_data)
void exception_print(struct ui_file *file, const struct gdb_exception &e)
frame_info_ptr get_selected_frame(const char *message)
void print_stack_frame_to_uiout(struct ui_out *uiout, frame_info_ptr, int print_level, enum print_what print_what, int set_current_sal)
static void ATTRIBUTE_PRINTF(1, 0)
int gdbarch_has_global_solist(struct gdbarch *gdbarch)
thread_info * find_thread_ptid(inferior *inf, ptid_t ptid)
void print_selected_thread_frame(struct ui_out *uiout, user_selected_what selection)
all_non_exited_threads_range all_non_exited_threads(process_stratum_target *proc_target=nullptr, ptid_t filter_ptid=minus_one_ptid)
struct thread_info * inferior_thread(void)
mach_port_t kern_return_t mach_port_t mach_msg_type_name_t msgportsPoly mach_port_t kern_return_t pid_t pid mach_port_t kern_return_t mach_port_t task mach_port_t kern_return_t int flags
void print_selected_inferior(struct ui_out *uiout)
struct inferior * current_inferior(void)
all_inferiors_range all_inferiors(process_stratum_target *proc_target=nullptr)
all_non_exited_inferiors_range all_non_exited_inferiors(process_stratum_target *proc_target=nullptr)
void print_no_history_reason(struct ui_out *uiout)
void print_stop_event(struct ui_out *uiout, bool displays)
void print_signal_exited_reason(struct ui_out *uiout, enum gdb_signal siggnal)
void print_end_stepping_range_reason(struct ui_out *uiout)
void print_exited_reason(struct ui_out *uiout, int exitstatus)
void print_signal_received_reason(struct ui_out *uiout, enum gdb_signal siggnal)
struct interp * interp_lookup(struct ui *ui, const char *name)
struct interp * top_level_interpreter(void)
struct interp * command_interp(void)
void interp_factory_register(const char *name, interp_factory_func func)
struct gdb_exception interp_exec(struct interp *interp, const char *command_str)
struct ui_file * gdb_stdtarg
struct ui_file * gdb_stdtargerr
mi_cmd_argv_ftype mi_cmd_interpreter_exec
void mi_execute_command(const char *cmd, int from_tty)
const char * async_reason_lookup(enum async_reply_reason reason)
static struct interp * mi_interp_factory(const char *name)
static void mi_print_breakpoint_for_event(struct mi_interp *mi, breakpoint *bp)
static void mi_tsv_modified(const struct trace_state_variable *tsv)
static void mi_on_normal_stop(struct bpstat *bs, int print_frame)
static void mi_tsv_deleted(const struct trace_state_variable *tsv)
static void mi_on_resume(ptid_t ptid)
static void mi_execute_command_input_handler(gdb::unique_xmalloc_ptr< char > &&cmd)
static void mi_on_signal_exited(enum gdb_signal siggnal)
static void mi_inferior_removed(struct inferior *inf)
static void mi_breakpoint_modified(struct breakpoint *b)
static void mi_traceframe_changed(int tfnum, int tpnum)
static void mi_user_selected_context_changed(user_selected_what selection)
static void mi_inferior_added(struct inferior *inf)
void mi_output_solib_attribs(ui_out *uiout, struct so_list *solib)
static void mi_new_thread(struct thread_info *t)
static int mi_interp_query_hook(const char *ctlstr, va_list ap) ATTRIBUTE_PRINTF(1
static void mi_on_resume_1(struct mi_interp *mi, process_stratum_target *targ, ptid_t ptid)
static void mi_thread_exit(struct thread_info *t, int silent)
static void mi_memory_changed(struct inferior *inf, CORE_ADDR memaddr, ssize_t len, const bfd_byte *myaddr)
static void mi_record_changed(struct inferior *, int, const char *, const char *)
static void mi_on_sync_execution_done(void)
static void mi_tsv_created(const struct trace_state_variable *tsv)
static void mi_remove_notify_hooks(void)
static struct mi_interp * as_mi_interp(struct interp *interp)
static void mi_inferior_appeared(struct inferior *inf)
static int static void mi_insert_notify_hooks(void)
static void mi_execute_command_wrapper(const char *cmd)
static void mi_breakpoint_deleted(struct breakpoint *b)
void _initialize_mi_interp()
static void mi_command_param_changed(const char *param, const char *value)
static void mi_on_exited(int exitstatus)
static void mi_on_signal_received(enum gdb_signal siggnal)
static void mi_breakpoint_created(struct breakpoint *b)
static bool multiple_inferiors_p()
static void mi_on_no_history(void)
static void mi_on_command_error()
static void mi_solib_unloaded(struct so_list *solib)
static void mi_on_end_stepping_range(void)
static void mi_inferior_exit(struct inferior *inf)
static struct mi_interp * find_mi_interp(void)
static void mi_output_running(struct thread_info *thread)
static void mi_about_to_proceed(void)
static void mi_on_normal_stop_1(struct bpstat *bs, int print_frame)
static void display_mi_prompt(struct mi_interp *mi)
static void mi_solib_loaded(struct so_list *solib)
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)
void mi_print_timing_maybe(struct ui_file *file)
int running_result_record_printed
void mi_out_rewind(ui_out *uiout)
mi_ui_out * mi_out_new(const char *mi_version)
void mi_out_put(ui_out *uiout, struct ui_file *stream)
observable< struct inferior *, CORE_ADDR, ssize_t, const bfd_byte * > memory_changed
observable< struct so_list * > solib_loaded
observable< struct so_list * > solib_unloaded
observable< const char *, const char * > command_param_changed
observable< struct inferior * > inferior_added
observable< struct inferior * > inferior_exit
observable sync_execution_done
observable< const struct trace_state_variable * > tsv_created
observable< struct breakpoint * > breakpoint_created
observable< struct breakpoint * > breakpoint_modified
observable< const struct trace_state_variable * > tsv_modified
observable< struct breakpoint * > breakpoint_deleted
observable< const struct trace_state_variable * > tsv_deleted
observable< struct thread_info * > new_thread
observable< struct inferior * > inferior_removed
observable< struct thread_info *, int > thread_exit
observable end_stepping_range
observable< user_selected_what > user_selected_context_changed
observable< enum gdb_signal > signal_exited
observable< ptid_t > target_resumed
observable about_to_proceed
observable< struct inferior * > inferior_appeared
observable< struct bpstat *, int > normal_stop
observable< enum gdb_signal > signal_received
observable< int, int > traceframe_changed
observable< struct inferior *, int, const char *, const char * > record_changed
struct obj_section * find_pc_section(CORE_ADDR pc)
static void print_frame(const frame_print_options &opts, frame_info_ptr frame, int print_level, enum print_what print_what, int print_args, struct symtab_and_line sal)
int user_selected_context
struct bfd_section * the_bfd_section
char so_name[SO_NAME_MAX_PATH_SIZE]
char so_original_name[SO_NAME_MAX_PATH_SIZE]
enum async_reply_reason async_reply_reason()
void(* input_handler)(gdb::unique_xmalloc_ptr< char > &&)
enum prompt_state prompt_state
void(* call_readline)(gdb_client_data)
int target_core_of_thread(ptid_t ptid)
#define SWITCH_THRU_ALL_UIS()
std::unique_ptr< ui_file > ui_file_up
void gdb_printf(struct ui_file *stream, const char *format,...)
void gdb_flush(struct ui_file *stream)
void gdb_puts(const char *linebuffer, struct ui_file *stream)