GDB (xrefs)
Classes | Enumerations | Functions | Variables
mi-main.c File Reference
#include "defs.h"
#include "arch-utils.h"
#include "target.h"
#include "inferior.h"
#include "infrun.h"
#include "top.h"
#include "gdbthread.h"
#include "mi-cmds.h"
#include "mi-parse.h"
#include "mi-getopt.h"
#include "mi-console.h"
#include "ui-out.h"
#include "mi-out.h"
#include "interps.h"
#include "event-loop.h"
#include "event-top.h"
#include "gdbcore.h"
#include "value.h"
#include "regcache.h"
#include "gdb.h"
#include "frame.h"
#include "mi-main.h"
#include "mi-common.h"
#include "language.h"
#include "valprint.h"
#include "osdata.h"
#include "splay-tree.h"
#include "tracepoint.h"
#include "ctf.h"
#include "ada-lang.h"
#include "linespec.h"
#include "extension.h"
#include "gdbcmd.h"
#include <ctype.h>
#include <sys/time.h>
#include <sys/resource.h>

Go to the source code of this file.

Classes

struct  collect_cores_data
 
struct  print_one_inferior_data
 

Enumerations

enum  { FROM_TTY = 0 }
 

Functions

void _initialize_mi_main (void)
 
static void mi_cmd_execute (struct mi_parse *parse)
 
static void mi_execute_cli_command (const char *cmd, int args_p, const char *args)
 
static void mi_execute_async_cli_command (char *cli_command, char **argv, int argc)
 
static int register_changed_p (int regnum, struct regcache *, struct regcache *)
 
static void output_register (struct frame_info *, int regnum, int format, int skip_unavailable)
 
static void set_mi_async_command (char *args, int from_tty, struct cmd_list_element *c)
 
static void show_mi_async_command (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
int mi_async_p (void)
 
static void timestamp (struct mi_timestamp *tv)
 
static void print_diff_now (struct mi_timestamp *start)
 
static void print_diff (struct mi_timestamp *start, struct mi_timestamp *end)
 
void mi_cmd_gdb_exit (char *command, char **argv, int argc)
 
void mi_cmd_exec_next (char *command, char **argv, int argc)
 
void mi_cmd_exec_next_instruction (char *command, char **argv, int argc)
 
void mi_cmd_exec_step (char *command, char **argv, int argc)
 
void mi_cmd_exec_step_instruction (char *command, char **argv, int argc)
 
void mi_cmd_exec_finish (char *command, char **argv, int argc)
 
void mi_cmd_exec_return (char *command, char **argv, int argc)
 
void mi_cmd_exec_jump (char *args, char **argv, int argc)
 
static void proceed_thread (struct thread_info *thread, int pid)
 
static int proceed_thread_callback (struct thread_info *thread, void *arg)
 
static void exec_continue (char **argv, int argc)
 
static void exec_direction_forward (void *notused)
 
static void exec_reverse_continue (char **argv, int argc)
 
void mi_cmd_exec_continue (char *command, char **argv, int argc)
 
static int interrupt_thread_callback (struct thread_info *thread, void *arg)
 
void mi_cmd_exec_interrupt (char *command, char **argv, int argc)
 
static int run_one_inferior (struct inferior *inf, void *arg)
 
void mi_cmd_exec_run (char *command, char **argv, int argc)
 
static int find_thread_of_process (struct thread_info *ti, void *p)
 
void mi_cmd_target_detach (char *command, char **argv, int argc)
 
void mi_cmd_thread_select (char *command, char **argv, int argc)
 
void mi_cmd_thread_list_ids (char *command, char **argv, int argc)
 
void mi_cmd_thread_info (char *command, char **argv, int argc)
 
static int collect_cores (struct thread_info *ti, void *xdata)
 
static intunique (int *b, int *e)
 
static int print_one_inferior (struct inferior *inferior, void *xdata)
 
static void output_cores (struct ui_out *uiout, const char *field_name, const char *xcores)
 
static void free_vector_of_ints (void *xvector)
 
static void do_nothing (splay_tree_key k)
 
static void free_vector_of_osdata_items (splay_tree_value xvalue)
 
static int splay_tree_int_comparator (splay_tree_key xa, splay_tree_key xb)
 
static void free_splay_tree (void *xt)
 
static void list_available_thread_groups (VEC(int)*ids, int recurse)
 
void mi_cmd_list_thread_groups (char *command, char **argv, int argc)
 
void mi_cmd_data_list_register_names (char *command, char **argv, int argc)
 
void mi_cmd_data_list_changed_registers (char *command, char **argv, int argc)
 
void mi_cmd_data_list_register_values (char *command, char **argv, int argc)
 
void mi_cmd_data_write_register_values (char *command, char **argv, int argc)
 
void mi_cmd_data_evaluate_expression (char *command, char **argv, int argc)
 
void mi_cmd_data_read_memory (char *command, char **argv, int argc)
 
void mi_cmd_data_read_memory_bytes (char *command, char **argv, int argc)
 
void mi_cmd_data_write_memory (char *command, char **argv, int argc)
 
void mi_cmd_data_write_memory_bytes (char *command, char **argv, int argc)
 
void mi_cmd_enable_timings (char *command, char **argv, int argc)
 
void mi_cmd_list_features (char *command, char **argv, int argc)
 
void mi_cmd_list_target_features (char *command, char **argv, int argc)
 
void mi_cmd_add_inferior (char *command, char **argv, int argc)
 
static int get_other_inferior (struct inferior *inf, void *arg)
 
void mi_cmd_remove_inferior (char *command, char **argv, int argc)
 
static void captured_mi_execute_command (struct ui_out *uiout, struct mi_parse *context)
 
static void mi_print_exception (const char *token, struct gdb_exception exception)
 
void mi_execute_command (const char *cmd, int from_tty)
 
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 (void)
 
static long timeval_diff (struct timeval start, struct timeval end)
 
void mi_cmd_trace_define_variable (char *command, char **argv, int argc)
 
void mi_cmd_trace_list_variables (char *command, char **argv, int argc)
 
void mi_cmd_trace_find (char *command, char **argv, int argc)
 
void mi_cmd_trace_save (char *command, char **argv, int argc)
 
void mi_cmd_trace_start (char *command, char **argv, int argc)
 
void mi_cmd_trace_status (char *command, char **argv, int argc)
 
void mi_cmd_trace_stop (char *command, char **argv, int argc)
 
void mi_cmd_ada_task_info (char *command, char **argv, int argc)
 
static void print_variable_or_computed (char *expression, enum print_values values)
 
void mi_cmd_trace_frame_collected (char *command, char **argv, int argc)
 

Variables

struct rusage rusage
 
int mi_debug_p
 
struct ui_fileraw_stdout
 
static struct mi_timestampcurrent_command_ts
 
static int do_timings = 0
 
char * current_token
 
static struct mi_parsecurrent_context
 
int running_result_record_printed = 1
 
int mi_proceeded
 
static int mi_async = 0
 
static int mi_async_1 = 0
 

Enumeration Type Documentation

anonymous enum
Enumerator
FROM_TTY 

Definition at line 68 of file mi-main.c.

Function Documentation

void _initialize_mi_main ( void  )
static void captured_mi_execute_command ( struct ui_out uiout,
struct mi_parse context 
)
static
static int collect_cores ( struct thread_info ti,
void *  xdata 
)
static
static void do_nothing ( splay_tree_key  k)
static

Definition at line 737 of file mi-main.c.

Referenced by list_available_thread_groups().

static void exec_continue ( char **  argv,
int  argc 
)
static
static void exec_direction_forward ( void *  notused)
static

Definition at line 322 of file mi-main.c.

References EXEC_FORWARD, and execution_direction.

Referenced by exec_reverse_continue().

static void exec_reverse_continue ( char **  argv,
int  argc 
)
static
static int find_thread_of_process ( struct thread_info ti,
void *  p 
)
static

Definition at line 500 of file mi-main.c.

References is_exited(), pid, thread_info::ptid, and ptid_get_pid().

Referenced by mi_cmd_target_detach().

static void free_splay_tree ( void *  xt)
static

Definition at line 760 of file mi-main.c.

Referenced by list_available_thread_groups().

static void free_vector_of_ints ( void *  xvector)
static

Definition at line 729 of file mi-main.c.

References VEC, and VEC_free.

Referenced by mi_cmd_list_thread_groups().

static void free_vector_of_osdata_items ( splay_tree_value  xvalue)
static

Definition at line 742 of file mi-main.c.

References VEC, and VEC_free.

Referenced by list_available_thread_groups().

static int get_other_inferior ( struct inferior inf,
void *  arg 
)
static

Definition at line 1924 of file mi-main.c.

References current_inferior().

Referenced by mi_cmd_remove_inferior().

static int interrupt_thread_callback ( struct thread_info thread,
void *  arg 
)
static

Definition at line 355 of file mi-main.c.

References is_running(), pid, thread_info::ptid, ptid_get_pid(), and target_stop().

Referenced by mi_cmd_exec_interrupt().

static void list_available_thread_groups ( VEC(int)*  ids,
int  recurse 
)
static
int mi_async_p ( void  )
void mi_cmd_ada_task_info ( char *  command,
char **  argv,
int  argc 
)

Definition at line 2676 of file mi-main.c.

References _, current_inferior(), current_uiout, error(), and print_ada_task_info().

void mi_cmd_add_inferior ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_data_evaluate_expression ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_data_list_changed_registers ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_data_list_register_names ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_data_list_register_values ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_data_read_memory ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_data_read_memory_bytes ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_data_write_memory ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_data_write_memory_bytes ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_data_write_register_values ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_enable_timings ( char *  command,
char **  argv,
int  argc 
)

Definition at line 1835 of file mi-main.c.

References _, do_timings, and error().

void mi_cmd_exec_continue ( char *  command,
char **  argv,
int  argc 
)

Definition at line 346 of file mi-main.c.

References exec_continue(), and exec_reverse_continue().

void mi_cmd_exec_finish ( char *  command,
char **  argv,
int  argc 
)

Definition at line 209 of file mi-main.c.

References mi_execute_async_cli_command().

void mi_cmd_exec_interrupt ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_exec_jump ( char *  args,
char **  argv,
int  argc 
)

Definition at line 238 of file mi-main.c.

References mi_execute_async_cli_command().

void mi_cmd_exec_next ( char *  command,
char **  argv,
int  argc 
)

Definition at line 169 of file mi-main.c.

References mi_execute_async_cli_command().

void mi_cmd_exec_next_instruction ( char *  command,
char **  argv,
int  argc 
)

Definition at line 179 of file mi-main.c.

References mi_execute_async_cli_command().

void mi_cmd_exec_return ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_exec_run ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_exec_step ( char *  command,
char **  argv,
int  argc 
)

Definition at line 189 of file mi-main.c.

References mi_execute_async_cli_command().

void mi_cmd_exec_step_instruction ( char *  command,
char **  argv,
int  argc 
)

Definition at line 199 of file mi-main.c.

References mi_execute_async_cli_command().

static void mi_cmd_execute ( struct mi_parse parse)
static
void mi_cmd_gdb_exit ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_list_features ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_list_target_features ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_list_thread_groups ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_remove_inferior ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_target_detach ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_thread_info ( char *  command,
char **  argv,
int  argc 
)

Definition at line 595 of file mi-main.c.

References _, current_uiout, error(), and print_thread_info().

void mi_cmd_thread_list_ids ( char *  command,
char **  argv,
int  argc 
)

Definition at line 577 of file mi-main.c.

References _, current_uiout, error(), gdb_list_thread_ids(), GDB_RC_FAIL, make_cleanup(), and xfree().

void mi_cmd_thread_select ( char *  command,
char **  argv,
int  argc 
)

Definition at line 559 of file mi-main.c.

References _, current_uiout, error(), GDB_RC_FAIL, gdb_thread_select(), make_cleanup(), and xfree().

void mi_cmd_trace_define_variable ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_trace_find ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_trace_frame_collected ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_trace_list_variables ( char *  command,
char **  argv,
int  argc 
)

Definition at line 2518 of file mi-main.c.

References _, error(), and tvariables_info_1().

void mi_cmd_trace_save ( char *  command,
char **  argv,
int  argc 
)

Definition at line 2610 of file mi-main.c.

References mi_getopt(), trace_save_ctf(), and trace_save_tfile().

void mi_cmd_trace_start ( char *  command,
char **  argv,
int  argc 
)

Definition at line 2655 of file mi-main.c.

References start_tracing().

void mi_cmd_trace_status ( char *  command,
char **  argv,
int  argc 
)

Definition at line 2661 of file mi-main.c.

References trace_status_mi().

void mi_cmd_trace_stop ( char *  command,
char **  argv,
int  argc 
)

Definition at line 2667 of file mi-main.c.

References stop_tracing(), and trace_status_mi().

void mi_execute_async_cli_command ( char *  cli_command,
char **  argv,
int  argc 
)
static
void mi_execute_cli_command ( const char *  cmd,
int  args_p,
const char *  args 
)
static
void mi_execute_command ( const char *  cmd,
int  from_tty 
)
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 
)
static void mi_print_exception ( const char *  token,
struct gdb_exception  exception 
)
static
void mi_print_timing_maybe ( void  )

Definition at line 2464 of file mi-main.c.

References do_timings, and print_diff_now().

Referenced by captured_mi_execute_command(), and mi_on_normal_stop().

static void output_cores ( struct ui_out uiout,
const char *  field_name,
const char *  xcores 
)
static
static void output_register ( struct frame_info frame,
int  regnum,
int  format,
int  skip_unavailable 
)
static
static void print_diff ( struct mi_timestamp start,
struct mi_timestamp end 
)
static
static void print_diff_now ( struct mi_timestamp start)
static

Definition at line 2455 of file mi-main.c.

References print_diff(), and timestamp().

Referenced by mi_print_timing_maybe().

static int print_one_inferior ( struct inferior inferior,
void *  xdata 
)
static
static void print_variable_or_computed ( char *  expression,
enum print_values  values 
)
static
static void proceed_thread ( struct thread_info thread,
int  pid 
)
static
static int proceed_thread_callback ( struct thread_info thread,
void *  arg 
)
static

Definition at line 259 of file mi-main.c.

References pid, and proceed_thread().

Referenced by exec_continue().

static int register_changed_p ( int  regnum,
struct regcache prev_regs,
struct regcache this_regs 
)
static
static int run_one_inferior ( struct inferior inf,
void *  arg 
)
static
static void set_mi_async_command ( char *  args,
int  from_tty,
struct cmd_list_element c 
)
static

Definition at line 115 of file mi-main.c.

References _, error(), have_live_inferiors(), mi_async, and mi_async_1.

Referenced by _initialize_mi_main().

static void show_mi_async_command ( struct ui_file file,
int  from_tty,
struct cmd_list_element c,
const char *  value 
)
static

Definition at line 128 of file mi-main.c.

References _, and fprintf_filtered().

Referenced by _initialize_mi_main().

static int splay_tree_int_comparator ( splay_tree_key  xa,
splay_tree_key  xb 
)
static

Definition at line 751 of file mi-main.c.

Referenced by list_available_thread_groups().

static void timestamp ( struct mi_timestamp tv)
static
static long timeval_diff ( struct timeval  start,
struct timeval  end 
)
static

Definition at line 2473 of file mi-main.c.

References L.

Referenced by print_diff().

static int* unique ( int b,
int e 
)
static

Definition at line 627 of file mi-main.c.

Referenced by print_one_inferior().

Variable Documentation

struct mi_timestamp* current_command_ts
static

Definition at line 79 of file mi-main.c.

struct mi_parse* current_context
static

Definition at line 87 of file mi-main.c.

char* current_token
int do_timings = 0
static
int mi_async = 0
static

Definition at line 108 of file mi-main.c.

Referenced by mi_async_p(), and set_mi_async_command().

int mi_async_1 = 0
static

Definition at line 112 of file mi-main.c.

Referenced by _initialize_mi_main(), and set_mi_async_command().

int mi_debug_p

Definition at line 73 of file mi-main.c.

Referenced by captured_mi_execute_command(), and mi_execute_cli_command().

int mi_proceeded

Definition at line 93 of file mi-main.c.

Referenced by captured_mi_execute_command(), mi_about_to_proceed(), and mi_on_resume().

struct ui_file* raw_stdout
int running_result_record_printed = 1

Definition at line 89 of file mi-main.c.

Referenced by captured_mi_execute_command(), and mi_on_resume().

struct rusage rusage

Definition at line 65 of file mi-main.c.

Referenced by timestamp().