GDB (xrefs)
Classes | Enumerations | Functions | Variables
/home/stan/gdb/src/gdb/mi/mi-main.c File Reference
#include "defs.h"
#include "arch-utils.h"
#include "target.h"
#include "inferior.h"
#include "gdb_string.h"
#include "exceptions.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 <ctype.h>
#include <sys/time.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 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

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

Enumeration Type Documentation

anonymous enum
Enumerator:
FROM_TTY 

Definition at line 70 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 695 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 283 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 461 of file mi-main.c.

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

Referenced by mi_cmd_target_detach().

static void free_splay_tree ( void *  xt) [static]

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

Referenced by list_available_thread_groups().

static void free_vector_of_ints ( void *  xvector) [static]

Definition at line 687 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 700 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 1869 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 316 of file mi-main.c.

References is_running(), 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]
void mi_cmd_ada_task_info ( char *  command,
char **  argv,
int  argc 
)
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 1781 of file mi-main.c.

References _, do_timings, error(), and mi_cmd_enable_timings.

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

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

References exec_continue(), exec_reverse_continue(), and mi_cmd_exec_continue.

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

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

References mi_cmd_exec_finish, and 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 201 of file mi-main.c.

References mi_cmd_exec_jump, and mi_execute_async_cli_command().

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

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

References mi_cmd_exec_next, and mi_execute_async_cli_command().

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

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

References mi_cmd_exec_next_instruction, and 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 152 of file mi-main.c.

References mi_cmd_exec_step, and mi_execute_async_cli_command().

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

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

References mi_cmd_exec_step_instruction, and 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 556 of file mi-main.c.

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

void mi_cmd_thread_list_ids ( char *  command,
char **  argv,
int  argc 
)
void mi_cmd_thread_select ( char *  command,
char **  argv,
int  argc 
)
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 2446 of file mi-main.c.

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

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

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

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

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

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

References mi_cmd_trace_start, and start_tracing().

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

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

References mi_cmd_trace_status, and trace_status_mi().

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

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

References mi_cmd_trace_stop, 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]

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

References fputs_unfiltered(), fputstr_unfiltered(), and gdb_exception::message.

Referenced by mi_execute_command().

void mi_print_timing_maybe ( void  )

Definition at line 2392 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 2383 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 222 of file mi-main.c.

References 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 int splay_tree_int_comparator ( splay_tree_key  xa,
splay_tree_key  xb 
) [static]

Definition at line 709 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 2401 of file mi-main.c.

References L.

Referenced by print_diff().

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

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

Referenced by print_one_inferior().


Variable Documentation

struct mi_timestamp* current_command_ts [static]

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

struct mi_parse* current_context [static]

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

int do_timings = 0 [static]

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

Referenced by captured_mi_execute_command(), and mi_execute_cli_command().

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

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

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

Referenced by captured_mi_execute_command(), and mi_on_resume().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines